{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "## A Gentle Introduction to use Auto Encoders for Anomaly Detection\n",
    "#### Author Nagdev Amruthnath\n",
    "Date: 1/9/2019\n",
    "\n",
    "#### Citation Info\n",
    "If you are using this for your research, please use the following for citation.\n",
    "\n",
    "Amruthnath, Nagdev, and Tarun Gupta. \"A research study on unsupervised machine learning algorithms for early fault detection in predictive maintenance.\" In 2018 5th International Conference on Industrial Engineering and Applications (ICIEA), pp. 355-361. IEEE, 2018.\n",
    "\n",
    "#### Disclaimer\n",
    "This is a tutorial for performing fault detection using machine learning. You this code at your own risk. I do not gurantee that this would work as shown below. If you have any suggestions please branch this project.\n",
    "\n",
    "### Load Libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "options(warn=-1)\n",
    "\n",
    "# load libraries\n",
    "library(dplyr)\n",
    "library(h2o)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "### Load data\n",
    "Here we are using data from a bench press. There are total of four different states in this machine and they are split into four different csv files. We need to load the data first. In the data time represents the time between samples, ax is the acceleration on x axis, ay is the acceleration on y axis, az is the acceleration on z axis and at is the G's. The data was collected at sample rate of 100hz.\n",
    "\n",
    "Four different states of the machine were collected\n",
    "\n",
    "    1. Nothing attached to drill press\n",
    "    2. Wooden base attached to drill press\n",
    "    3. Imbalance created by adding weight to one end of wooden base\n",
    "    4. Imbalacne created by adding weight to two ends of wooden base."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 6 × 5</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>time</th><th scope=col>ax</th><th scope=col>ay</th><th scope=col>az</th><th scope=col>aT</th></tr>\n",
       "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>0.002</td><td>-0.3246</td><td> 0.2748</td><td> 0.1502</td><td>0.451</td></tr>\n",
       "\t<tr><td>0.009</td><td> 0.6020</td><td>-0.1900</td><td>-0.3227</td><td>0.709</td></tr>\n",
       "\t<tr><td>0.019</td><td> 0.9787</td><td> 0.3258</td><td> 0.0124</td><td>1.032</td></tr>\n",
       "\t<tr><td>0.027</td><td> 0.6141</td><td>-0.4179</td><td> 0.0471</td><td>0.744</td></tr>\n",
       "\t<tr><td>0.038</td><td>-0.3218</td><td>-0.6389</td><td>-0.4259</td><td>0.833</td></tr>\n",
       "\t<tr><td>0.047</td><td>-0.3607</td><td> 0.1332</td><td>-0.1291</td><td>0.406</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 6 × 5\n",
       "\\begin{tabular}{r|lllll}\n",
       " time & ax & ay & az & aT\\\\\n",
       " <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
       "\\hline\n",
       "\t 0.002 & -0.3246 &  0.2748 &  0.1502 & 0.451\\\\\n",
       "\t 0.009 &  0.6020 & -0.1900 & -0.3227 & 0.709\\\\\n",
       "\t 0.019 &  0.9787 &  0.3258 &  0.0124 & 1.032\\\\\n",
       "\t 0.027 &  0.6141 & -0.4179 &  0.0471 & 0.744\\\\\n",
       "\t 0.038 & -0.3218 & -0.6389 & -0.4259 & 0.833\\\\\n",
       "\t 0.047 & -0.3607 &  0.1332 & -0.1291 & 0.406\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 6 × 5\n",
       "\n",
       "| time &lt;dbl&gt; | ax &lt;dbl&gt; | ay &lt;dbl&gt; | az &lt;dbl&gt; | aT &lt;dbl&gt; |\n",
       "|---|---|---|---|---|\n",
       "| 0.002 | -0.3246 |  0.2748 |  0.1502 | 0.451 |\n",
       "| 0.009 |  0.6020 | -0.1900 | -0.3227 | 0.709 |\n",
       "| 0.019 |  0.9787 |  0.3258 |  0.0124 | 1.032 |\n",
       "| 0.027 |  0.6141 | -0.4179 |  0.0471 | 0.744 |\n",
       "| 0.038 | -0.3218 | -0.6389 | -0.4259 | 0.833 |\n",
       "| 0.047 | -0.3607 |  0.1332 | -0.1291 | 0.406 |\n",
       "\n"
      ],
      "text/plain": [
       "  time  ax      ay      az      aT   \n",
       "1 0.002 -0.3246  0.2748  0.1502 0.451\n",
       "2 0.009  0.6020 -0.1900 -0.3227 0.709\n",
       "3 0.019  0.9787  0.3258  0.0124 1.032\n",
       "4 0.027  0.6141 -0.4179  0.0471 0.744\n",
       "5 0.038 -0.3218 -0.6389 -0.4259 0.833\n",
       "6 0.047 -0.3607  0.1332 -0.1291 0.406"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "setwd(\"/home/\")\n",
    "#read csv files\n",
    "file1 = read.csv(\"dry run.csv\", sep=\",\", header =T)\n",
    "file2 = read.csv(\"base.csv\", sep=\",\", header =T)\n",
    "file3 = read.csv(\"imbalance 1.csv\", sep=\",\", header =T)\n",
    "file4 = read.csv(\"imbalance 2.csv\", sep=\",\", header =T)\n",
    "head(file1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can look at the summary of each file using summary function in R. Below, we can observe that 66 seconds long data is available. We also have min, max and mean for each of the variables."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "      time               ax                  ay                  az          \n",
       " Min.   :  0.004   Min.   :-1.402700   Min.   :-1.693300   Min.   :-3.18930  \n",
       " 1st Qu.: 27.005   1st Qu.:-0.311100   1st Qu.:-0.429600   1st Qu.:-0.57337  \n",
       " Median : 54.142   Median : 0.015100   Median :-0.010700   Median :-0.11835  \n",
       " Mean   : 54.086   Mean   : 0.005385   Mean   :-0.002534   Mean   :-0.09105  \n",
       " 3rd Qu.: 81.146   3rd Qu.: 0.314800   3rd Qu.: 0.419475   3rd Qu.: 0.34815  \n",
       " Max.   :108.127   Max.   : 1.771900   Max.   : 1.515600   Max.   : 5.04610  \n",
       "       aT        \n",
       " Min.   :0.0360  \n",
       " 1st Qu.:0.6270  \n",
       " Median :0.8670  \n",
       " Mean   :0.9261  \n",
       " 3rd Qu.:1.1550  \n",
       " Max.   :5.2950  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# summary of each file\n",
    "summary(file2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data Aggregration and feature extraction\n",
    "Here, the data is aggregated by 1 minute and features are extracted. Features are extracted to reduce the dimension of the data and only storing the representation of the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A tibble: 6 × 21</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>group</th><th scope=col>ax_mean</th><th scope=col>ax_sd</th><th scope=col>ax_min</th><th scope=col>ax_max</th><th scope=col>ax_median</th><th scope=col>ay_mean</th><th scope=col>ay_sd</th><th scope=col>ay_min</th><th scope=col>ay_may</th><th scope=col>⋯</th><th scope=col>az_mean</th><th scope=col>az_sd</th><th scope=col>az_min</th><th scope=col>az_maz</th><th scope=col>az_median</th><th scope=col>aT_mean</th><th scope=col>aT_sd</th><th scope=col>aT_min</th><th scope=col>aT_maT</th><th scope=col>aT_median</th></tr>\n",
       "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>⋯</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>0</td><td>-0.038164706</td><td>0.6594686</td><td>-1.2587</td><td>1.3821</td><td>-0.0955</td><td>-0.0682627451</td><td>0.7506785</td><td>-1.3892</td><td>1.6418</td><td>⋯</td><td>-0.13803333</td><td>0.9845115</td><td>-2.6753</td><td>2.7507</td><td> 0.0254</td><td>1.273216</td><td>0.5830149</td><td>0.400</td><td>3.029</td><td>1.0770</td></tr>\n",
       "\t<tr><td>1</td><td>-0.005806122</td><td>0.6325808</td><td>-1.6194</td><td>1.1943</td><td>-0.0015</td><td> 0.0037908163</td><td>0.7819044</td><td>-1.5625</td><td>1.5428</td><td>⋯</td><td>-0.20496837</td><td>0.9252188</td><td>-3.0774</td><td>2.7158</td><td>-0.2121</td><td>1.263622</td><td>0.5448447</td><td>0.410</td><td>3.197</td><td>1.1375</td></tr>\n",
       "\t<tr><td>2</td><td> 0.069845455</td><td>0.6665500</td><td>-1.4554</td><td>1.4667</td><td> 0.1070</td><td> 0.0744333333</td><td>0.8022922</td><td>-1.4800</td><td>1.7951</td><td>⋯</td><td>-0.06405354</td><td>0.9293866</td><td>-1.8205</td><td>2.4862</td><td>-0.1512</td><td>1.298364</td><td>0.5131552</td><td>0.255</td><td>2.644</td><td>1.2830</td></tr>\n",
       "\t<tr><td>3</td><td> 0.011552525</td><td>0.5511310</td><td>-1.9254</td><td>1.2034</td><td> 0.0675</td><td> 0.0008262626</td><td>0.7894209</td><td>-2.0042</td><td>1.5577</td><td>⋯</td><td>-0.09287879</td><td>0.8893505</td><td>-2.1562</td><td>3.2355</td><td>-0.1672</td><td>1.203848</td><td>0.5125826</td><td>0.393</td><td>3.322</td><td>1.1180</td></tr>\n",
       "\t<tr><td>4</td><td> 0.046688119</td><td>0.6426574</td><td>-1.7805</td><td>1.4837</td><td> 0.0836</td><td>-0.0177594059</td><td>0.7510811</td><td>-1.6629</td><td>1.4369</td><td>⋯</td><td>-0.13990000</td><td>0.9265720</td><td>-1.8515</td><td>3.5451</td><td>-0.1741</td><td>1.226267</td><td>0.5824608</td><td>0.313</td><td>3.597</td><td>1.1720</td></tr>\n",
       "\t<tr><td>5</td><td> 0.006678788</td><td>0.5780957</td><td>-1.4719</td><td>1.4355</td><td> 0.0536</td><td> 0.0013626263</td><td>0.7812245</td><td>-1.6293</td><td>1.6362</td><td>⋯</td><td>-0.16540000</td><td>0.9091516</td><td>-2.5561</td><td>2.9196</td><td>-0.2588</td><td>1.209515</td><td>0.5664847</td><td>0.336</td><td>3.035</td><td>1.1590</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A tibble: 6 × 21\n",
       "\\begin{tabular}{r|lllllllllllllllllllll}\n",
       " group & ax\\_mean & ax\\_sd & ax\\_min & ax\\_max & ax\\_median & ay\\_mean & ay\\_sd & ay\\_min & ay\\_may & ay\\_median & az\\_mean & az\\_sd & az\\_min & az\\_maz & az\\_median & aT\\_mean & aT\\_sd & aT\\_min & aT\\_maT & aT\\_median\\\\\n",
       " <fct> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
       "\\hline\n",
       "\t 0 & -0.038164706 & 0.6594686 & -1.2587 & 1.3821 & -0.0955 & -0.0682627451 & 0.7506785 & -1.3892 & 1.6418 & -0.19000 & -0.13803333 & 0.9845115 & -2.6753 & 2.7507 &  0.0254 & 1.273216 & 0.5830149 & 0.400 & 3.029 & 1.0770\\\\\n",
       "\t 1 & -0.005806122 & 0.6325808 & -1.6194 & 1.1943 & -0.0015 &  0.0037908163 & 0.7819044 & -1.5625 & 1.5428 &  0.01005 & -0.20496837 & 0.9252188 & -3.0774 & 2.7158 & -0.2121 & 1.263622 & 0.5448447 & 0.410 & 3.197 & 1.1375\\\\\n",
       "\t 2 &  0.069845455 & 0.6665500 & -1.4554 & 1.4667 &  0.1070 &  0.0744333333 & 0.8022922 & -1.4800 & 1.7951 &  0.11860 & -0.06405354 & 0.9293866 & -1.8205 & 2.4862 & -0.1512 & 1.298364 & 0.5131552 & 0.255 & 2.644 & 1.2830\\\\\n",
       "\t 3 &  0.011552525 & 0.5511310 & -1.9254 & 1.2034 &  0.0675 &  0.0008262626 & 0.7894209 & -2.0042 & 1.5577 & -0.00270 & -0.09287879 & 0.8893505 & -2.1562 & 3.2355 & -0.1672 & 1.203848 & 0.5125826 & 0.393 & 3.322 & 1.1180\\\\\n",
       "\t 4 &  0.046688119 & 0.6426574 & -1.7805 & 1.4837 &  0.0836 & -0.0177594059 & 0.7510811 & -1.6629 & 1.4369 & -0.02530 & -0.13990000 & 0.9265720 & -1.8515 & 3.5451 & -0.1741 & 1.226267 & 0.5824608 & 0.313 & 3.597 & 1.1720\\\\\n",
       "\t 5 &  0.006678788 & 0.5780957 & -1.4719 & 1.4355 &  0.0536 &  0.0013626263 & 0.7812245 & -1.6293 & 1.6362 & -0.09910 & -0.16540000 & 0.9091516 & -2.5561 & 2.9196 & -0.2588 & 1.209515 & 0.5664847 & 0.336 & 3.035 & 1.1590\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A tibble: 6 × 21\n",
       "\n",
       "| group &lt;fct&gt; | ax_mean &lt;dbl&gt; | ax_sd &lt;dbl&gt; | ax_min &lt;dbl&gt; | ax_max &lt;dbl&gt; | ax_median &lt;dbl&gt; | ay_mean &lt;dbl&gt; | ay_sd &lt;dbl&gt; | ay_min &lt;dbl&gt; | ay_may &lt;dbl&gt; | ⋯ ⋯ | az_mean &lt;dbl&gt; | az_sd &lt;dbl&gt; | az_min &lt;dbl&gt; | az_maz &lt;dbl&gt; | az_median &lt;dbl&gt; | aT_mean &lt;dbl&gt; | aT_sd &lt;dbl&gt; | aT_min &lt;dbl&gt; | aT_maT &lt;dbl&gt; | aT_median &lt;dbl&gt; |\n",
       "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n",
       "| 0 | -0.038164706 | 0.6594686 | -1.2587 | 1.3821 | -0.0955 | -0.0682627451 | 0.7506785 | -1.3892 | 1.6418 | ⋯ | -0.13803333 | 0.9845115 | -2.6753 | 2.7507 |  0.0254 | 1.273216 | 0.5830149 | 0.400 | 3.029 | 1.0770 |\n",
       "| 1 | -0.005806122 | 0.6325808 | -1.6194 | 1.1943 | -0.0015 |  0.0037908163 | 0.7819044 | -1.5625 | 1.5428 | ⋯ | -0.20496837 | 0.9252188 | -3.0774 | 2.7158 | -0.2121 | 1.263622 | 0.5448447 | 0.410 | 3.197 | 1.1375 |\n",
       "| 2 |  0.069845455 | 0.6665500 | -1.4554 | 1.4667 |  0.1070 |  0.0744333333 | 0.8022922 | -1.4800 | 1.7951 | ⋯ | -0.06405354 | 0.9293866 | -1.8205 | 2.4862 | -0.1512 | 1.298364 | 0.5131552 | 0.255 | 2.644 | 1.2830 |\n",
       "| 3 |  0.011552525 | 0.5511310 | -1.9254 | 1.2034 |  0.0675 |  0.0008262626 | 0.7894209 | -2.0042 | 1.5577 | ⋯ | -0.09287879 | 0.8893505 | -2.1562 | 3.2355 | -0.1672 | 1.203848 | 0.5125826 | 0.393 | 3.322 | 1.1180 |\n",
       "| 4 |  0.046688119 | 0.6426574 | -1.7805 | 1.4837 |  0.0836 | -0.0177594059 | 0.7510811 | -1.6629 | 1.4369 | ⋯ | -0.13990000 | 0.9265720 | -1.8515 | 3.5451 | -0.1741 | 1.226267 | 0.5824608 | 0.313 | 3.597 | 1.1720 |\n",
       "| 5 |  0.006678788 | 0.5780957 | -1.4719 | 1.4355 |  0.0536 |  0.0013626263 | 0.7812245 | -1.6293 | 1.6362 | ⋯ | -0.16540000 | 0.9091516 | -2.5561 | 2.9196 | -0.2588 | 1.209515 | 0.5664847 | 0.336 | 3.035 | 1.1590 |\n",
       "\n"
      ],
      "text/plain": [
       "  group ax_mean      ax_sd     ax_min  ax_max ax_median ay_mean       ay_sd    \n",
       "1 0     -0.038164706 0.6594686 -1.2587 1.3821 -0.0955   -0.0682627451 0.7506785\n",
       "2 1     -0.005806122 0.6325808 -1.6194 1.1943 -0.0015    0.0037908163 0.7819044\n",
       "3 2      0.069845455 0.6665500 -1.4554 1.4667  0.1070    0.0744333333 0.8022922\n",
       "4 3      0.011552525 0.5511310 -1.9254 1.2034  0.0675    0.0008262626 0.7894209\n",
       "5 4      0.046688119 0.6426574 -1.7805 1.4837  0.0836   -0.0177594059 0.7510811\n",
       "6 5      0.006678788 0.5780957 -1.4719 1.4355  0.0536    0.0013626263 0.7812245\n",
       "  ay_min  ay_may ⋯ az_mean     az_sd     az_min  az_maz az_median aT_mean \n",
       "1 -1.3892 1.6418 ⋯ -0.13803333 0.9845115 -2.6753 2.7507  0.0254   1.273216\n",
       "2 -1.5625 1.5428 ⋯ -0.20496837 0.9252188 -3.0774 2.7158 -0.2121   1.263622\n",
       "3 -1.4800 1.7951 ⋯ -0.06405354 0.9293866 -1.8205 2.4862 -0.1512   1.298364\n",
       "4 -2.0042 1.5577 ⋯ -0.09287879 0.8893505 -2.1562 3.2355 -0.1672   1.203848\n",
       "5 -1.6629 1.4369 ⋯ -0.13990000 0.9265720 -1.8515 3.5451 -0.1741   1.226267\n",
       "6 -1.6293 1.6362 ⋯ -0.16540000 0.9091516 -2.5561 2.9196 -0.2588   1.209515\n",
       "  aT_sd     aT_min aT_maT aT_median\n",
       "1 0.5830149 0.400  3.029  1.0770   \n",
       "2 0.5448447 0.410  3.197  1.1375   \n",
       "3 0.5131552 0.255  2.644  1.2830   \n",
       "4 0.5125826 0.393  3.322  1.1180   \n",
       "5 0.5824608 0.313  3.597  1.1720   \n",
       "6 0.5664847 0.336  3.035  1.1590   "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "file1$group = as.factor(round(file1$time))\n",
    "file2$group = as.factor(round(file2$time))\n",
    "file3$group = as.factor(round(file3$time))\n",
    "file4$group = as.factor(round(file4$time))\n",
    "#(file1,20)\n",
    "\n",
    "#list of all files\n",
    "files = list(file1, file2, file3, file4)\n",
    "\n",
    "#loop through all files and combine\n",
    "features = NULL\n",
    "for (i in 1:4){\n",
    "res = files[[i]] %>%\n",
    "    group_by(group) %>%\n",
    "    summarize(ax_mean = mean(ax),\n",
    "              ax_sd = sd(ax),\n",
    "              ax_min = min(ax),\n",
    "              ax_max = max(ax),\n",
    "              ax_median = median(ax),\n",
    "              ay_mean = mean(ay),\n",
    "              ay_sd = sd(ay),\n",
    "              ay_min = min(ay),\n",
    "              ay_may = max(ay),\n",
    "              ay_median = median(ay),\n",
    "              az_mean = mean(az),\n",
    "              az_sd = sd(az),\n",
    "              az_min = min(az),\n",
    "              az_maz = max(az),\n",
    "              az_median = median(az),\n",
    "              aT_mean = mean(aT),\n",
    "              aT_sd = sd(aT),\n",
    "              aT_min = min(aT),\n",
    "              aT_maT = max(aT),\n",
    "              aT_median = median(aT)\n",
    "             )\n",
    "    features = rbind(features, res)\n",
    "}\n",
    "\n",
    "#view all features\n",
    "head(features)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create Train and Test Set\n",
    "To build an anomaly detection model, a train and test set is required. Here, the normal condition of the data is used for training and remaining is used for testing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "# create train and test set\n",
    "train = features[1:67,2:ncol(features)]\n",
    "test = features[68:nrow(features),2:ncol(features)]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Auto Encoders\n",
    "Autoencoders is an unsupervised version of neural network that is used for data encoding. This technique is mainly used to learn the representation of data that can be used for dimensionality reduction by training network to ignore noise. Autoencoders play an important role in unsupervised learning and deep architectures mainly for transfer learning (Pierre. B, 2012). When autoencoders are decoded, they are simple linear circuits that transforms inputs to outputs with least distortion. Autoencoders were first introduced in 1980’s to address the issue of back propagation without training and rather use input as a teacher (Rumelhart et al., 1986). Since then, autoencoders have taken a phase change to the form on Restricted Boltzman Machine. Today, autoencoders are used in various applications such as predicting sentiment distributions in Natural Language Processing (NLP) (Socher et al., 2011a) (Socher et al., 2011b), feature extraction (Masci et al., 2011), anomaly detection (Sakurada et al., 2014), facial recognition (Gao et al., 2015), clustering (Dilokthanakul et al., 2016), image classification (Geng et al., 2015) and many other application. \n",
    "\n",
    "#### Auto Encoders using H2O package\n",
    "Use the h2o.init() method to initialize H2O. This method accepts the following options. Note that in most cases, simply using h2o.init() is all that a user is required to do."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " Connection successful!\n",
      "\n",
      "R is connected to the H2O cluster: \n",
      "    H2O cluster uptime:         51 minutes 33 seconds \n",
      "    H2O cluster timezone:       Etc/UTC \n",
      "    H2O data parsing timezone:  UTC \n",
      "    H2O cluster version:        3.26.0.2 \n",
      "    H2O cluster version age:    3 months and 3 days  \n",
      "    H2O cluster name:           H2O_started_from_R_root_ufj371 \n",
      "    H2O cluster total nodes:    1 \n",
      "    H2O cluster total memory:   28.95 GB \n",
      "    H2O cluster total cores:    1 \n",
      "    H2O cluster allowed cores:  1 \n",
      "    H2O cluster healthy:        TRUE \n",
      "    H2O Connection ip:          localhost \n",
      "    H2O Connection port:        54321 \n",
      "    H2O Connection proxy:       NA \n",
      "    H2O Internal Security:      FALSE \n",
      "    H2O API Extensions:         Amazon S3, XGBoost, Algos, AutoML, Core V3, Core V4 \n",
      "    R Version:                  R version 3.3.3 (2017-03-06) \n",
      "\n"
     ]
    }
   ],
   "source": [
    "# initialize h2o cluser\n",
    "h2o.init()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The R object to be converted to an H2O object should be named so that it can be used in subsequent analysis. Also note that the R object is converted to a parsed H2O data object, and will be treated as a data frame by H2O in subsequent analysis."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  |======================================================================| 100%\n",
      "  |======================================================================| 100%\n"
     ]
    }
   ],
   "source": [
    "# convert train and test to h2o object\n",
    "train_h2o = as.h2o(train)\n",
    "test_h2o = as.h2o(test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The h2o.deeplearning function fits H2O's Deep Learning models from within R. While H2O Deep Learning has many parameters, it was designed to be just as easy to use as the other supervised training methods in H2O. Early stopping, automatic data standardization and handling of categorical variables and missing values and adaptive learning rates (per weight) reduce the amount of parameters the user has to specify. Often, it's just the number and sizes of hidden layers, the number of epochs and the activation function and maybe some regularization techniques."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  |======================================================================| 100%\n"
     ]
    }
   ],
   "source": [
    "# build auto encoder model with 3 layers\n",
    "model_unsup = h2o.deeplearning(x = 2:ncol(features)\n",
    "                 , training_frame = train_h2o\n",
    "                 , model_id = \"Test01\"\n",
    "                 , autoencoder = TRUE\n",
    "                 , reproducible = TRUE\n",
    "                 , ignore_const_cols = FALSE\n",
    "                 , seed = 42\n",
    "                 , hidden = c(50,10,50,100,100)\n",
    "                 , epochs = 100\n",
    "                 , activation =\"Tanh\")\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Model Details:\n",
       "==============\n",
       "\n",
       "H2OAutoEncoderModel: deeplearning\n",
       "Model ID:  Test01 \n",
       "Status of Neuron Layers: auto-encoder, gaussian distribution, Quadratic loss, 19,179 weights/biases, 236.0 KB, 2,546 training samples, mini-batch size 1\n",
       "  layer units  type dropout       l1       l2 mean_rate rate_rms momentum\n",
       "1     1    19 Input  0.00 %       NA       NA        NA       NA       NA\n",
       "2     2    50  Tanh  0.00 % 0.000000 0.000000  0.029104 0.007101 0.000000\n",
       "3     3    10  Tanh  0.00 % 0.000000 0.000000  0.021010 0.006320 0.000000\n",
       "4     4    50  Tanh  0.00 % 0.000000 0.000000  0.024570 0.006848 0.000000\n",
       "5     5   100  Tanh  0.00 % 0.000000 0.000000  0.052482 0.018357 0.000000\n",
       "6     6   100  Tanh  0.00 % 0.000000 0.000000  0.052677 0.021417 0.000000\n",
       "7     7    19  Tanh      NA 0.000000 0.000000  0.025557 0.009494 0.000000\n",
       "  mean_weight weight_rms mean_bias bias_rms\n",
       "1          NA         NA        NA       NA\n",
       "2    0.000069   0.180678  0.001542 0.017311\n",
       "3    0.000008   0.187546 -0.000435 0.011542\n",
       "4    0.011644   0.184633  0.000371 0.006443\n",
       "5    0.000063   0.113350 -0.000964 0.008983\n",
       "6    0.000581   0.100150  0.001003 0.013848\n",
       "7   -0.001349   0.121616  0.006549 0.012720\n",
       "\n",
       "\n",
       "H2OAutoEncoderMetrics: deeplearning\n",
       "** Reported on training data. **\n",
       "\n",
       "Training Set Metrics: \n",
       "=====================\n",
       "\n",
       "MSE: (Extract with `h2o.mse`) 0.005829827\n",
       "RMSE: (Extract with `h2o.rmse`) 0.0763533\n",
       "\n",
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# view the model\n",
    "model_unsup"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Detect anomalies in an H2O dataset using an H2O deep learning model with auto-encoding trained previously."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 6 × 2</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>Reconstruction.MSE</th><th scope=col>y</th></tr>\n",
       "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>0.001953387</td><td>0</td></tr>\n",
       "\t<tr><td>0.004875430</td><td>0</td></tr>\n",
       "\t<tr><td>0.002195593</td><td>0</td></tr>\n",
       "\t<tr><td>0.006722837</td><td>0</td></tr>\n",
       "\t<tr><td>0.001670331</td><td>0</td></tr>\n",
       "\t<tr><td>0.005859846</td><td>0</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 6 × 2\n",
       "\\begin{tabular}{r|ll}\n",
       " Reconstruction.MSE & y\\\\\n",
       " <dbl> & <dbl>\\\\\n",
       "\\hline\n",
       "\t 0.001953387 & 0\\\\\n",
       "\t 0.004875430 & 0\\\\\n",
       "\t 0.002195593 & 0\\\\\n",
       "\t 0.006722837 & 0\\\\\n",
       "\t 0.001670331 & 0\\\\\n",
       "\t 0.005859846 & 0\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 6 × 2\n",
       "\n",
       "| Reconstruction.MSE &lt;dbl&gt; | y &lt;dbl&gt; |\n",
       "|---|---|\n",
       "| 0.001953387 | 0 |\n",
       "| 0.004875430 | 0 |\n",
       "| 0.002195593 | 0 |\n",
       "| 0.006722837 | 0 |\n",
       "| 0.001670331 | 0 |\n",
       "| 0.005859846 | 0 |\n",
       "\n"
      ],
      "text/plain": [
       "  Reconstruction.MSE y\n",
       "1 0.001953387        0\n",
       "2 0.004875430        0\n",
       "3 0.002195593        0\n",
       "4 0.006722837        0\n",
       "5 0.001670331        0\n",
       "6 0.005859846        0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# now we need to calculate MSE or anomaly score  \n",
    "anmlt = h2o.anomaly(model_unsup\n",
    "                      , train_h2o\n",
    "                      , per_feature = FALSE) %>% as.data.frame()\n",
    "# create a label for healthy data\n",
    "anmlt$y = 0\n",
    "\n",
    "# view top data\n",
    "head(anmlt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Calulate the threshold value for train anomaly scores. Various methods can be used such as calculating the quantiles, max, median, min etc. It all depends on the use case. Here we will use quantile with probability of 99.9%. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "# calculate thresholds from train data\n",
    "threshold = quantile(anmlt$Reconstruction.MSE, probs = 0.999)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, we have anomaly score for train and its thresholds, we can predict the new anomaly scores for test data and plot it to see how it differs from train data. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "# calculate anomaly scores for test data\n",
    "test_anmlt = h2o.anomaly(model_unsup\n",
    "                      , test_h2o\n",
    "                      , per_feature = FALSE) %>% as.data.frame()\n",
    "\n",
    "# create a label for healthy data\n",
    "test_anmlt$y = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<caption>A data.frame: 6 × 3</caption>\n",
       "<thead>\n",
       "\t<tr><th scope=col>Reconstruction.MSE</th><th scope=col>y</th><th scope=col>threshold</th></tr>\n",
       "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "\t<tr><td>0.001953387</td><td>0</td><td>0.01705935</td></tr>\n",
       "\t<tr><td>0.004875430</td><td>0</td><td>0.01705935</td></tr>\n",
       "\t<tr><td>0.002195593</td><td>0</td><td>0.01705935</td></tr>\n",
       "\t<tr><td>0.006722837</td><td>0</td><td>0.01705935</td></tr>\n",
       "\t<tr><td>0.001670331</td><td>0</td><td>0.01705935</td></tr>\n",
       "\t<tr><td>0.005859846</td><td>0</td><td>0.01705935</td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "A data.frame: 6 × 3\n",
       "\\begin{tabular}{r|lll}\n",
       " Reconstruction.MSE & y & threshold\\\\\n",
       " <dbl> & <dbl> & <dbl>\\\\\n",
       "\\hline\n",
       "\t 0.001953387 & 0 & 0.01705935\\\\\n",
       "\t 0.004875430 & 0 & 0.01705935\\\\\n",
       "\t 0.002195593 & 0 & 0.01705935\\\\\n",
       "\t 0.006722837 & 0 & 0.01705935\\\\\n",
       "\t 0.001670331 & 0 & 0.01705935\\\\\n",
       "\t 0.005859846 & 0 & 0.01705935\\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "A data.frame: 6 × 3\n",
       "\n",
       "| Reconstruction.MSE &lt;dbl&gt; | y &lt;dbl&gt; | threshold &lt;dbl&gt; |\n",
       "|---|---|---|\n",
       "| 0.001953387 | 0 | 0.01705935 |\n",
       "| 0.004875430 | 0 | 0.01705935 |\n",
       "| 0.002195593 | 0 | 0.01705935 |\n",
       "| 0.006722837 | 0 | 0.01705935 |\n",
       "| 0.001670331 | 0 | 0.01705935 |\n",
       "| 0.005859846 | 0 | 0.01705935 |\n",
       "\n"
      ],
      "text/plain": [
       "  Reconstruction.MSE y threshold \n",
       "1 0.001953387        0 0.01705935\n",
       "2 0.004875430        0 0.01705935\n",
       "3 0.002195593        0 0.01705935\n",
       "4 0.006722837        0 0.01705935\n",
       "5 0.001670331        0 0.01705935\n",
       "6 0.005859846        0 0.01705935"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# combine the train and test anomaly scores for visulaizatio\n",
    "results = data.frame(rbind(anmlt,test_anmlt), threshold)\n",
    "head(results)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The results are plotted below. The x axis is the observations and y axis is the anomaly score. The green points are the trained data and red are test data. We can note that all the data that was trained except one lied below the anomaly limit. Its also interesting to note the increasing trend pattern for the anomaly scores for other state of the machine. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABwgAAALQCAIAAAALpLM0AAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nOzde5zVc/4H8PfU1OhGpRtSLdlUKpVckiXtFjZyKyq3zXXtYrHYxWJ3fy67\nWBaLWOxWSmKpXLbcIxJpKUKUrFuULnSdmvn9MfaYpjOXpplzZuY8n3/8Hmc+7+/5fl9zZtrH\n/F6+l6z8/PwAAAAAAMgktdIdAAAAAAAg1RSjAAAAAEDGUYwCAAAAABlHMQoAAAAAZBzFKAAA\nAACQcRSjAAAAAEDGUYwCAAAAABlHMQoAAAAAZBzFKAAAAACQcRSjAAAAAEDGUYwCAAAAABlH\nMQoAAAAAZBzFKAAAAACQcRSjAAAAAEDGUYwCAAAAABlHMQoAAAAAZBzFKAAAAACQcRSjAAAA\nAEDGUYwCAAAAABlHMQoAAAAAZBzFKAAAAACQcRSjAAAAAEDGUYwCAAAAABlHMQoAAAAAZBzF\nKAAAAACQcRSjAAAAAEDGUYwCAAAAABlHMQoAAAAAZBzFKAAAAACQcRSjAAAAAEDGUYwCAAAA\nABlHMQoAAAAAZBzFKAAAAACQcRSjAAAAAEDGUYwCAAAAABlHMQoAAAAAZBzFKAAAAACQcRSj\nAAAAAEDGUYwCAAAAABlHMQoAVGNdu3bNKmTPPfdMd6K0Kfw5VPb+a9WqlZOT06RJk1133bVv\n377nnnvulClT8vPzK+O4VU1lf87lkJVMnTp1mjRpsueee55++unPPfdcujOWogp+qgBAJsjK\nkD9hAYCa5+23395jjz2KLM6dO7dz585pyZNehRulyvgDr9TGqkOHDrfeeutPfvKTij1Wiv9Y\nLfXQacxWnLKUicOHD//HP/6RnZ2dgjzlUNynWgU/bQCgJnHGKABQXd1///2bL44dOzb1SYiI\n995775BDDvnLX/6S7iAkcf/99996663pTgEAULUoRgGAaik/P3/cuHGbrytGUyA/Pz8/P3/l\nypVz58695ZZb2rdvX7Cel5f361//+qGHHkpvvExW8KPJy8tbtmzZlClTdt9998Ton//8ZxqD\nAQBUQS6lBwCqpenTp/fp06fgdb169SJizZo1iVHv3r3TlixNUnkpfZH9r1279pRTThk/fnzB\nly1btlywYEH9+vUr41iVrTpeu11C5pkzZ+6zzz4Fr+vVq7d69eqUJiszl9IDAGnhjFEAoFoq\nfB394YcfPnDgwKSjwoo84GXmzJmDBw9u2bJl3bp127Zte8455yxdunTzd+Xn50+ePPm4445r\n165d/fr169Wr165du8GDB0+cOHHzpqbIIcaMGdOrV6/69eu3atXqlFNO+eSTTyJiw4YNN9xw\nQ+fOnbfZZptWrVqdfPLJBetFLFiw4M477zz22GM7dOjQqFGj7Ozsxo0bd+3a9ec///ns2bPL\n8hHtu+++iTBnnXVWkelVV12VmO61115l2WFxttlmm3/+85+JkxMXL148atSozTd7/vnnf/az\nn+2+++7bbrttTk5O69atjznmmEmTJhUpworcMbOEx/KUZYeFzZ8//7e//W2fPn1atGiRk5PT\noEGDLl26nHPOOTNnziz7oUvIszW/KmX8bdxShe+3u80222y+Qdk/w0WLFl100UV77bVXkyZN\nsrOz69evv9tuux199NF/+ctf3nvvvRK+tTKOkm5Z6nvLngoAIIl8AIDqJjc3t1mzZom/ZyZO\nnPjoo48mvmzevHlubu7m7yr8J9D111+/eTXToUOHlStXFn7LkiVLfvzjHxf3d9SPf/zjJUuW\nFHeICy+8sMj2rVq1WrhwYd++fYust2nTZunSpSWkLaJWrVrXX399CdsXrDzwwAOJlXr16hWO\numHDhtatWyemI0eOLPUz33z/Rdx1112JDY444ojCo5UrVx599NHFfTuHHXbYihUrSv2uCx+3\n7DsskJube/7559eqVew5AWU/dNLF/K37VSnjb2M5fjQzZsxIjPbdd9/y/VAK9tOoUaOyfD4l\n5yn7W0o4VmKbLUoFALA5fy4AANXPY489lug+mjZtum7dunXr1jVp0iSx+Pjjj2/+rpKrlgJX\nXnllYvsNGzaUekn+/vvvv2HDhrIfYrvttku6/pvf/GaL0mZlZb300kvFbV+wkpubu/POOycW\nr7766sTGkyZNSqw3bNjwm2++KfUz33z/RcyfPz+xQZs2bRLrGzduLKExLDBgwIC8vLxSv+ty\n7LDA8ccfX+qey3Lo4j6HyvhViU1/G7foR5OXl7d8+fKpU6cWvsfoPffcU74fSn5+/v7771/y\nxknzZGVllRq1uPWyHG6LUgEAbM6l9ABA9VP4CUvHHnts3bp169ate+yxxybdIKk6dercdNNN\nX3zxxcKFCw899NDEeuEzT0eNGvXyyy8XvG7QoMGdd975xRdfLF68eOTIkQ0aNChYnz59+ujR\no5Meonnz5s8+++yKFSsuvvjixOKKFSuaNWv29NNPr1ix4vzzz0+sP/7440Xevtdee910002v\nvfba119/nZubu3z58pkzZw4aNKhgmp+ff8cdd5T8PWZnZ//yl79MfPm3v/0tNze34PXIkSMT\n68OGDWvYsGHJuyqLnXbaKfF6yZIlidfjxo17+umnC163bNly7NixX3311erVq6dPn96rV6+C\n9SlTpjz88MORrBQr/JdrOXYYEY8++mjhk2cHDhz4wgsvfPnll+vWrfvggw/uvffegn6tLIcu\nzlb+qpTlt7GMCq40r1WrVuPGjfv37//uu+8WrJ9xxhk/+9nPEptt6Wc4a9asxHsnTZq0Zs2a\n3NzcL7744plnnrniiisKX7BfWAmn6JaqLD+O8qUCAPheJRWuAACVZNWqVYmyKSJeeOGFgvXn\nn38+sdiwYcNVq1YVeWPhP4F++9vfJtYLn+rYoEGDxHq/fv0S60UuXb/++usTo5/85CdJD5G4\nPn3RokWF12+//faC9c8++yzpcUvw9ddfJ96yyy67FPfdFd6+8Gc1evTogjyFG6vXX3+9LIcu\n9Q/IVatWJTaoX79+Yr1///6J9aeffrrwWxYuXJgYHX744WU81pbu8Kc//Wli8YwzztjKbzPp\nBlv5q1KW38YyZk7qsssuK/KWLf0MGzdunFg855xznnzyyffee2/9+vUl56ldu3ZZPr1yrJcj\nFQDA5hSjAEA1U/jZSjvvvHPiat+8vLzCV46PHTu2yBsLlyzz5s1LrK9duzZp/1L4NqYLFy4s\nvKsFCxYkRs2bN096iEWLFhUsrlu3rvB6Yld5eXmFC8oiaVesWHHTTTf179+/TZs29erV2/we\nlIXLx/ziK6Szzz47sd6jR4/8/Pzf/e53iZWePXuW7VMvvTF8//33Exu0bds26cdYglatWpXx\nWFu6wxYtWiQWP/jgg638NpNusJW/KmX5bSxj5uLceOONW/MZnnTSSZtP69Sp06NHj8suu+yT\nTz5Jmqeyi9EtSgUAsDmX0gMA1Uzhy+SHDh2aaAyzsrKGDh2adLPNtWvXLvG6bt26SbdZvnx5\n4nWrVq0Kj3bYYYekmxWWeEuR/e+4446JwHl5eUnf++GHH+6xxx7nn3/+1KlTP/744zVr1uRv\n1n+tXr066XuLOO+88xIf0RtvvPHss8/ec889iemZZ55Zlp2UxTPPPJN4veeeeyZeF/f5FPHV\nV1+V8UBbusNly5YlFtu0aVPGo2yRrfxVKctvYxnl5+fn5eUtWbLkiSee6NmzZ2L9kksumTt3\nbqlJikh8hjfffHPha/wL5ObmvvHGG1dffXXHjh1nzpyZNEzhL4t0vluvfKkAABKyNv8jGwCg\nylq6dOkOO+yQuFdmCerUqfP5559vv/32iZXCJ10W+RMo6ah58+aJe2UuXLiwcHu1cOHCXXbZ\nJbHZl19+WfIhtnT9yCOPnDhxYqnfY1l2FREDBw5M3MN0xx13TFzC36hRo88++6yMNxgtYf8R\nsW7duq5duyZOGr3zzjsTlWvhj7GM307Jx9rSHbZs2TLxA/rggw923XXXEt5S8qGL26ACf1XK\nkqGMmVevXt2rV6933nmn4MvBgwc/+OCDmwcuWeEdzps3b8qUKW+++eaCBQs+/PDDTz/9NDHq\n27fvs88+u3me3Nzc7Ozsgtfvvfde4YdBbc0/kMLKmAoAYHPOGAUAqpMHH3ywLK1oROTm5k6Y\nMGFrjtWtW7fE63/961+FR4W/LHx2ZEUp3Obccsstn3/+eW5ubn5+ftlPqyys8FOeCt/YtKIe\nu7RmzZoTTjgh0Yq2bNnyxBNPTEwLfz4l3880sVnhOmzDhg1FDrelO0w8TSgiCt/xM6mSD12c\nNP6qlKB+/fq333574SSJ292W44cSER07dvzVr3513333vfDCC5988smrr76aGL322muJ14Vv\na/vxxx8nXo8aNWpLv4Wy/DjKmAoAYHOKUQCgOil8g9GK3Xhzw4YNS7y+8sor77777i+//PKr\nr7665557rrrqqsSo8PX7FWXjxo2J102bNm3UqNH69eunT59+1FFHlWNv/fr169Kly+brZ5xx\nRvkjRqxatertt9++5ZZbunbt+tBDDyXWb7311vr16ye+HD58eOL10UcfPX78+MWLF2/YsGHV\nqlXvv//+I488cuGFFxY+kTAitt1228TrCRMmFLlJ65bu8LTTTku8Hjly5BFHHPHiiy8uWbIk\nNzd30aJFY8eO7du3bxkPXZw0/qqU7MADD+zevXvB640bN955550Fr7f0M+zcufNll132xBNP\nLFiwYPXq1Rs3bvzqq6+mT5+e2KBwhZo4QzYizj333EWLFn355Ze33HLLDTfcsKX5S/5xbFEq\nAIAkSroBKQBAVfLRRx8VvqPoRx99tPk2CxcuLG6bEv4ESjrKzc3dd999S/5Tar/99tuwYUOp\nh9jS9QEDBmzpH3IlfHf5+fmF7ytaYK+99iruc06qLHlq1apV5CE/+fn5GzZs2H///bfoeznw\nwANL2KYcOzz++OPLuHHJhy7uc67AX5WSR6X+aDafFv7RN2vWbO3ateX4DEvd8pBDDklsXPjp\nXmXZeQnfQsk/ji1KBQCwOWeMAgDVRsGD5gte77///m3btt18m3bt2vXu3bvgdX5+/rhx48p9\nuOzs7MmTJxc+nbCIgw46aNKkSbVr1y73IYpzww03bLfddpuvX3nlleXb4fDhwws/nD22+nTR\nzXXo0GHKlCkXXHBBkfXatWtPmjTpkEMOKfuufvnLX5YwLccOR40a9atf/apWrdL/9C350MVJ\n469KqYYOHdq0adOC10uWLBk/fnyU6zMsQZs2bW699dbElxdeeOFuu+1WZJusrKxS72OwufL9\nOJKmAgDYnIcvAQDVRpcuXRJP1r799tt//vOfJ93sjjvuOPvssxNveeuttwpel+9xN3l5eZMm\nTbr//vtnzpxZ8OSc5s2b77333sOHDx80aFCRrq2iHr4UEQsWLPjDH/4wderUr776qnHjxj17\n9vzVr351yCGHlPsxNZdccsmf//zngtdb9NilzfeflZWVnZ1dv379pk2b7rzzzl26dBk4cOCA\nAQMKb1NEfn7+1KlTx4wZM2PGjM8//3zt2rUNGjRo3bp1p06devfu/dOf/vSHP/xh4e0ffPDB\nW2655a233vrmm2+Sfl9busOIeO+99+67775p06bNnz9/xYoVderU2WWXXQ488MCTTjpp7733\nLuOhK/tXpeRRUqVuf/HFFydKyV69eiWe1V72z/D999//97///fLLL8+dO/eTTz759ttvs7Oz\nmzVr1qlTp8MOO+zUU09t1KhR4SMuWbLk97///aRJkz7//PPGjRv/6Ec/uvjii/fee+9y/PaW\n8OPY0lQAAEUoRgEAMkL//v2feuqpgtdnnnlm4naTAACQmbLTHQAAgMq1cuXKf/3rX4lWNCKK\nO9kWAAAyh2IUAKAma9eu3aJFiwqv/PSnP+3WrVu68gAAQBXh4UsAABmkZcuWt99+e7pTAABA\n+ilGAQBqvtq1a7dr1+60006bNWtWmzZt0h0HAADSz8OXAAAAAICM44xRAAAAACDjKEYBAAAA\ngIyjGAUAAAAAMo5iFAAAAADIOIpRAAAAACDjKEYBAAAAgIyjGAUAAAAAMo5iFAAAAADIOIpR\n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\nIiYAAABUI3vtFXPmxOzZMWdOZGVFly7RvXsqnupTXTRuHI88EoMGxdKlm6x36hTjx/ugKKcv\nv4zBg2PatE0WBw2KMWOi0DXQkJCVn5+f7gxV3ciRI88666xvvvmmoX9FAAAAUFEWL47bb49X\nX41PPokOHeLAA+O006J+/XTHonrKy4s+feKVV5KMjjkmHnoo5YH4zvr163NycqZPn967d+90\nZykqhQ9cAwAAAApbty7uvjueeireey9atIgePeKcc2LXXdMdK1Vatozf/z7dIagpJk9O3opG\nxMMPx6xZ0bNnagNRDShGAQAAIB2WLIn+/WP27O++fO+9ePHFuPvuGDs2Bg1KazKohp56qqTp\n008rRtlc8ocvZW2JFCcGAACAmuBnP/u+FU1YvTqGDYtFi9IRCKqzIverLWLJklTloDpJXowC\nAAAAlej99+Oxx5KPVq+OO+5IbRqo/lq0KP+UTFVsMZqVlXXAAQfccccdX331VX6JUhkXAAAA\naoJXXy1pOnNmqnJATTFgQPmnhT37bFx2WRx/fFxwQYwbF+vXb300qqzk9xgdMmTIY4899uKL\nL7744ovnnHNO//79hw4deuSRR3osOwAAAFSA1avLP6U6Wr066tdP0bHWro3Zs+Pdd6Np0+je\nPdq0SdFx0+vQQ+Ogg+L555OMTjghunYtfQ+rV8fxx8fkyZssduwYkyZF+/YVkpGqJvkZo+PH\nj1+8ePHo0aMPO+ywrKysJ5544sQTT2zRosVxxx03ceLE9cpyAAAA2Bo/+EH5p1QjCxbEiSdG\n69bRoEE0aRL9+ydv7irQ+PHRrl307h0jRsSRR0a7djFkSCn336wZsrLiX/+KQw4pun7CCXH3\n3WXaw2mnFW1FI2LevDj00Fi7tgISUvVklXot/NKlSydMmDBu3LgXX3yxYOPGjRsfc8wxf//7\n31OSMP1Gjhx51llnffPNN06YBQAAoGKsWxdt28bixcmnDz8cRx+d2kBUgtdfjx//OFas2GSx\ndu247bY466xKOeKDD8ZxxyVZ32uvmD496tatlINWNTNmxCuvxMcfR/v20adPdOtWpne9+250\n7Fjs9K674vTTKypgplm/fn1OTs706dN79+6d7ixFlf7wpe233/6ss8564YUXXnnllfbt20fE\n8uXL77nnnsrPBgAAADVUTk787W/JR0ccEUcdldo0VILc3Bg+vGgrGhEbN8a558b771fKEc87\nL/no9dfj3nsr/ohV0777xvnnx003xS9+UdZWNCKee678U6qt0ovRpUuXjhw58qCDDtpvv/0+\n+OCDiGjcuPGIESMqPxsAAADUXMccE5Mnxy67fL+yzTZx4YUxfnxkZaUvFhXk+eeLbT9zc+Mf\n/6j4I77ySnzxRbHTRx6p+CPWJMuWlTT9+utU5SClkj98KSK+/fbbiRMnjhs3burUqbm5uRFR\nr169gQMHDhs27NBDD83JyUlhSAAAAKiJBg6MQw+NBQti3rxo1So6dQr3cKsx5swp/7R8/vvf\n8k9p1aqk6Q47pCoHKZW8GD3++OMnT568evXqiMjOzj700EOHDh161FFHuckmAAAAVKTatWO3\n3WK33dKdg4qWl1f+afk0alT+Kf37R506kZubfHrYYalNQ4okL0bHjx+flZXVp0+fYcOGDR48\nuFmzZimOBQAAAFCNdepU0rSE5/yU2377Re3asXFj8mmfPhV/xJqkdeu44IL405+SjPr0iWOO\nSXkgUqHYe4zm5+e/9NJLZ599dvPmzbNKlMq4AAAAANVAv37Rpk3yUe3acfLJFX/E5s3j1FOT\njxo0iHPPrfgj1jDXXBMXXxzZm55EePjhMXFi1Cr9IT1UR8XeYxQAAACAcsrJiX/8Iw47LNau\nLTr6wx+iS5dKOejNN8enn8bjj2+yuN128cAD0bZtpRyxJqlVK/70p/jlL+Oll+K992KnnWLv\nvbfgufZUQ8mL0fz8/BTnAAAAAKhR+vaNGTPit7+N55+PNWsiOzu6dInLLqvE67Lr1YvJk+PR\nR+Pf/4533onmzWPPPeO002LHHSvriBXl7bdj7tzIy4tOnaJr10jjBco77xxDh6bt6KSWM0YB\nAACAzJCbGxMmxEsvxUcfRdu2sf/+MWRI1K1biUfs1i2eeCLy8uKTT6Jly8jJqcRjFcjKiqOO\niqOOqvQDVZR58+Lkk+O1175f6dIl7rsvevZMXyYyhWIUAAAAyACffRYDB8bs2d+v3HlnXH99\nPPZY7Lxz5R66Vq1i7zea4RYtigMPjK++2mRxzpw4+OCYMaNSHlEFhbh3LAAAAFDT5eXF0Udv\n0ooWeOutOPLIYp/kTmW74oqirWiBlSvj4otTnoaMs1XFqKfSAwAAANXA1Knx6qvJR2+8UfRp\nRaRGfn48+mix0ylTYvXqCjjKsmUxY0YsXBgeqMNmnDEKAAAA1HQvvFDSdNq0Tb6cNy/OPTcO\nPDC6do3jjovRoyMvr1LTZagVK2LlymKnubnxxRdbtf/p06NXr2jaNPbbL3bZJVq0iOuvr05n\nB8+cGSedFN26RZs2MWBA3HZb5OamO1NNs1X3GPXwegAAAKAaWLGipOny5d+/HjUqzjgj1q37\n7ss5c+LBB2PUqJg4MerXr8SEGahBg6hVq6TSuVGj8u986tQYOHCTJnHJkrj44pg3L+69t/y7\nTZlbb40LLogNG7778r//jalT4/77Y8qU2HbbtCarUZwxCgAAANR0O+1Upulbb8Wpp37fiiY8\n/XRccEGlBMtkderEPvsUO+3QIZo3L+eec3PjtNOSn195333x1FPl3G3KvPpq/OpX37eiCTNm\nxLnnpiNQjaUYBQAAAGq6ww8v0/Tmm5O0UQXuvTeWLavgVFxySbGj3/ym/LudNi3++99ip/ff\nX/49p8attxZ7Iu2YMbFkSWrT1GSKUQAAAKCm69o1Tjst+ejkk2Ovvb57PWNGsXvIzY1Zsyo+\nWIYbNCj+9KeoXbvo+m9/G6ecUv7dzp9f/mlV8NprxY42bozZs1MYpYYr0z1Gn3zyyb/+9a+v\nv/76smXL8jZrrN1pFAAAAKjqbr89GjaM2277/pzQ7Ow466y48caIiLfeinHj4qOPStrDqlWV\nnTETXXxxDBgQo0bF3LmxcWN07hzDhpV0iX1Z5OSUNK1bd6t2ngJr15Z/ypYovRgdN27csGHD\nUhAFAAAAoLLUqRM33RQXXRQzZsRHH0XbtrHPPtG6dUTE1VfHlVeW/rzydu0qP2VG6tbtu3q6\novToUdK0Z8+KPFZl2HXX+PjjkqZUkNIvpf/jH/8YEQcffPBbb721bt26/M1UfkgAAACAirDj\njnH00XHBBXHMMd+1ouPHx+WXl96KdugQXbumICAVoFu3OOCA5KO6deOMM1KbZssdf3yxo65d\no1OnFEap4UovRj/88MOI+Pvf/96lS5e6Vf9kYwAAAICyu/rq0repUyduvz2ysio/DRVkzJj4\nwQ+KLmZnx113xQ9/mI5AW2LEiDjooCTr9erFyJGpDlOjlV6M7rDDDhHRtGnTyg8DAAAAkELL\nl8ecOaVs06FDTJkSBx+ckkBUkDZtYvbs+N3vYp99okmT6NAhhg+PV1+Nk09Od7IyyM6Oxx+P\n886Lbbb5frFXr5g2LfbdN32xaqDSi9FTTz01Ip566qnKDwMAAACQQitXlrLBjBnxzjvRt29K\n0lChttsu/vCHmDEjvv463n03xowp5d6jVUr9+nHzzbF8ebzxRjz3XCxeHDNnxl57pTtWTVP6\nw5cuvfTSjz766Oyzz87NzR0wYIBTRwEAAIAaokWLqFs31q9PPq1fP3r1ilqln1UGW2zJkliw\nIHbZJZo1K3abnJzo3j2FmTJO6cVodvZ32xT3bHrPXwIAAACqpW22iQEDYvLk5NPDD9eKVgN5\nefHii/Gf/8Ty5dGpU/TtW1LVWBU8/HBcemm8//53X/7wh3H11XHssWnNlKFKL0YBAAAAaqxr\nr43nn49vvim63qRJ/N//pSNQ1fbxx/Hpp/HDH8b226c7SkREzJ8fxx0Xs2d/v1K/flx/fZx9\ndvoylei22+KcczZZef/9GDw4brml6DqVr/T/7pFfmhSkBAAAAKgUnTvH00/H7rtvstilSzzz\nTLRvn6ZMVU9+ftxxR+y4Y7RtG717R7Nm0bVrTJ1ayru++CKuuioOPzz23juGD49//CNycysy\n1bJl0a/fJq1oRKxeHb/4RfzznxV5oIryySdx0UXJRxdfHP/9b2rT4IxRAAAAIMPtvXe8/XbM\nmhVz5kRWVnTtGt27u4h+ExddFDfeuMnKnDlx2GExdmwMGZL8Lc89F8ccE8uWfffla6/F2LFx\n553x5JPRpEnFpLr55mLLxEsuieHDI7uKFV8PPRRr1yYfrV0bDz0U55+f2kCZzj9yAAAAIOPV\nqhW9esWIEfGzn0XPnlrRTbz+etFWtMDGjXH22UnuQhARixfHUUd934omvPpqHHhgPPJIfPpp\nBQR74oliR4sXx6xZFXCIijV/fknTxF1HSZWy/jsfP358//79mzVrVqdOnebNm/fv3//BBx+s\n1GQAAAAApN/YscWOli6Nf/87yfrIkbFiRfK3zJkTRx8dbdvGz39e7OmTZfTFF+WfpkWdOiVN\n69ZNVQ6+U/oZxXl5eSeeeOLYQv8GlixZ8tRTTz311FOPPfbYP//5z6ysrMpMCAAAAGydhQtj\n+vT44IPYeefYd9/o3DndgahWPvigpGnSsyBfeaWUfW7cGHfeGUuXxtaceNe0aXzySUnTqqZH\nj5Km3bunKgffKf2M0ZEjR44dO7Zu3bq/+93v5s+fv3r16g8++OCKK66oW7fu6NGj77rrrhSk\nBAAAAMpjw4Y477zYbbc48cT4/e/jtNNijz1iyJBYuTLdyag+Sj6TMen022/LtOcJE+KFF8oT\nqcDBBxc7atQoevUq/54rydFHxw47JB+1ahXHHJPaNJShGL3nnnsi4rrrrvvDH/7Qvn37evXq\n7brrrr///e+vu+66xBQAAACoin71q7jllti4cZPFCRNi8ODIz09TJtJkwYL47W/jkENiv/1i\nxIh4+OGy/g6UfJ5j0mmbNmVNNXFiWbfc3IUXxnbbJR9demlss03591xJGjaM8eNj222Lrjdq\nFOPHR6NG6ciU0UovRt95552IGDp0aJH1gpW33367MmIBAAAAW2v+/LjjjuSjqVOT3xqSmurB\nB2OPPeK662LKlJgxI+67L449NgYNinXrSn/vKadEw4bJR127xoEHJlkv+8mPJVwLX6rWrePx\nx6NVq00Ws7Li/PPjkkvKv9tKdcAB8Z//xBlnxB57RP360blznHFGvPlm/OhH6U6WiUq/x2jJ\n3GAUAAAAqqgnn4y8vGKnTzwRhx6awjSkzzvvxAknRG5u0fXJk+Pii+Ovfy3l7TvuGKNHx9Ch\nRZ+VtMMO8cADUbt2krccdVQcckiZyvfiTvkso/33j/ffjwkTYvbsWLEiOnaMww6Lbt22ap+V\n7Qc/iJEj0x2CiLIUox07dnzjjTfGjx9/3nnnFV5/4IEHCqaVFQ0AAAAou/fei3/8I+bMiTVr\nonPnGDy4lKdyf/55qpKRbjfdlKQVLXDnnfGHP5TeTh55ZMyaFTfcEDNnxiefxG67Rd++cdFF\n0bx58u2zsuLhh+PCC+Oee4o9dIGtP1OyUaMYMWJrd0JGKr0YHTFixBtvvHHJJZesWLHihBNO\n2HHHHT/77LMxY8Zcc801EXHqqadWfkgAAACgRHfdFeecE+vXf/fls8/GrbdG794lvaUKPrOb\nSvLyy8WO1q+P11+Pfv1K30mnTnHvvVtw0Pr144474o9/jP/8J849N+bNS7LNbrvFkCFbsM+q\nb8qUmDQp5s2LJk2iW7cYMSJat053JoqVlV/afXbz8vKGDh364IMPbj4aNmzY6NGja9Uq/Ual\n1drIkSPPOuusb775pmFxN9QAAACANJo2Lfl9Hks2dmxs9kARaqa2bePjj4udPvpoDBpUuQG+\n/DIGDozXXttksX37eOyx6NChcg+dMrm5cdJJ8cADmyw2bBijR8eRR6YpU5Wwfv36nJyc6dOn\n9y75P9WkQ+lnjNaqVWv8+PGDBg269957Z8+evWLFiu22265Hjx4jRozY/IlMAAAAQKr96U/F\njnJykj9dp0uXOPbYyktE1dKmTUnFaNmfIF9uLVrE9Onx0EPxwgvx4YfRpk3ss0+ccELUr1/p\nh06Zyy8v2opGxLffxvHHx5tv1pz+t2Yp68OXhg0bNmzYsEqNUqqlS5eOGTPm/9m7z7AqrjUK\nwOvQqwUBEUUFbNgrKoIdUexGSUSjxoqxYIslJvbYe4mNJBrsNUZjARX1itHYC9jBbmyggtLh\n/sCIHGdO41RY74/7yP5m9ixsuX5nz95hYWHXr19/8eJFUlKSpaWlg4ODh4dHq1atevbsWaxY\nMd0mJCIiIiIiItKBkydFSykpaNQIkZG5BmvUwJ9/wtRU07lIX3zxhehvEnd31KypjQympuje\nPU+LlFNTcfUqrl+HgwOqV0eJEuoLl2eJiVi2TLiUkoIFC7BmjXYDkULyeiq91mzYsGHIkCFv\n3779dDAxMTExMTE2Nnb//v2TJk1asWJFz549dZWQiIiIiIiISAcyM5GYKOuCxYvx6lXOSj1P\nT3TuDBODaQiQGgQFYf16XLokPW5iguXLIZHoIpOSdu/GsGF4/PjDl0ZGCAzEsmUoUkSnsf5z\n7hySkkSrMj66IJ0yjL8Hw8LCevXqlZWV1bp162+++aZOnTrOzs7m5uYpKSlPnjw5f/78b7/9\ndvDgwV69ehUvXtzX11fXeYmIiIiIiIi0xcgIpUqJvigtkcDFBXXrws9Pu7FIn1hY4PBhDB6M\nHTvw8bCZMmWwciVat9ZpMsXs2oUvv0R6es5IZiY2bMDduzh+XC/WPickyKrmXudH+kP43CSJ\nRCL57+MCiTxaSDlz5sysrKzx48cfOHAgICDA3d3d0tLSyMjI0tLS3d09ICDgwIED48ePz8rK\nmjlzphbyEBEREREREekRGUe7eHmheHEtRiF9VawYtm3Dw4fYvx8bNuDCBdy5gzZtdB1LAenp\nGDYsV1f0o7//xrp12s4jyMVF9SrpjmEcKH/+/HkAY8aMkXFNdjX7SiIiIiIiIqICZOJElCol\nMG5hgYULtZ6G9FjJkmjTBj16oFYtRbdTiI/HyZM4cAD372s4nIi//8aTJ6LVXbu0GEVcjRpw\ndRWtFuxT6fWZcGM0Kysr67+V1VnyaDEtEREREREREX3G0RHHjsHHJ9dgxaxyYAAAIABJREFU\nuXI4dAienjrKRIYvLg5ffw0HB/j4wN8fZcuiTh2cO6ftGGLbRGTTVbtWikSCpUuFe80eHhg6\nVOuBSCGGsWK0Tp06AObPny/jmuxq9pVEREREREREBYu7O06cQHQ0tm7FunU4exY3bqBxY13H\nIoP1/j1atMCGDcjIyBm8cAFNm0LLb+va2Khe1aZ27bB9O0qUyDXo748jR2BtraNMJIf8VdPZ\nu4gKrgyVUVKv77///vjx47Nnz7506VLfvn3r1KlTokSJ7MOXnj59ev78+V9//fXgwYMSiWTC\nhAmaDkNERERERESkpzw84OGh6xCULyxdKnCKPYB37zBkCE6f1l6SBg1gbJyrP/spLy9F58nM\nxNWriI6GqSmqV0eFCnKuT03FihXYvRvXrqFQIVSrhsGD4e8v65ZOndCmDc6fR3Q0ihRBzZoo\nV07ReKQLErltTX1ojAIIDQ0dMmRIgvghX4UKFVqxYkXPnj3V/ujVq1cHBQUlJCTY6M+nEERE\nREREREREmlOrlnBjNNu9eyhTRnth+vXDr78KjFta4to1uLnJn+H0afTti+vXc0YaN8avv8Ld\nXfj6xET4+eHUKenxsWMxZ46CqSlbamqqubl5ZGSkl+JdbG1R/VX69+/fAzA3N1dfGFm+/vrr\nmJiYhQsX+vv7ly1b1srKysjIyMrKqmzZsv7+/osWLYqJidFEV5SIiIiIiIhIZ169QmwseLwH\nad+9e7KqsbFaipFt6VK0bCk9aGODrVsV6opevIiWLXN1RQGcOIGmTfHsmfAtY8cKdEUBzJ2L\nP/9UJDIZBMUOIPtMcnLyxo0bAZQsWVKteWSxt7cfOXLkyJEjtfZEIiIiIiIiIh1IT8e8efj5\nZzx6BAA2NujQAXPnQov/BqeCztISr1+LVq2stBgFsLbGoUPYtg0HD+LGDdjZoXZtDByI0qUV\nun30aLx7JzD+6BGmT8fy5dLjiYlYt050tuXL0aGDoslJv4k2RrNfkxf78qNOnTqpORERERER\nERFRQZaRgS5dsHdvzkhiIjZtQkQEIiPh6qq7ZFSQ1K+PP/4QLllZoWpV7aYBjIzw1Vf46iul\nb3z1CsePi1Z37xZojF6/jqQk0VsuXFA6A+krFV+lNzExcXFxGT58+PTp09UbiIiIiIiIiKhA\nW7cuV1f0o6dPMWSI1tNQQSXjhd3Bg7W9YjQvHj9GZqZo9elTpKVJD6amyppQdpUMiuiK0Y9H\nKmnzhKU8UiHqu3fv5s+fnyTjcwDgkozNhomIiIiIiIjUS8Y7vIcO4d9/4eSkvTBUYDVujEWL\n8N13SE/PNe7vj59+0lEmldjayqpaWMDUVHqwXDkYGYm2U+UeZ0+GQ/4eowbRElVZQkLCmTNn\n0j7/cOATjx8/Rn7/eSAiIiIiIiJ9ceOGaCkzEzdvsjFKWjJiBLy9sXo1Ll/Gu3fw8ECnTggM\nhJHqR3nrQNmyKFkSjx8LVxs1EhgsXhwtWyIsTPiWHj3Ulo10TcXDl/STCr1LJyen/fv3y75m\n9erVQUFBYrusEhEREREREamTsbHq1Xzv/n0sW4YLF/D0KSpWRIsWGDAAFha6jpV/1a2LunWF\nS5GROHYMN2+iZEl4eqJ9e5joZZdJIsHYsQgOFq6OGyc8vmwZvLzw6pX0uLc3vv1WnfFIp+T3\n+MPCwiQSiZ+fn9S4n5+fRCIJDw/XTDAiIiIiIiKiAqlGDdGSiQkqV9ZiFD1z4ACqVcOCBYiI\nwI0b2LMHw4ejfn08f67rZAVMcjICAuDtjR9+QGgoZs9Gly6oUwexsbpOJmLYMAwdKj1oYoIl\nS9CypfAtFSrgzBm0bZvzUYS1NUaOxKFDMDfXYNToaEyejK5dERCAadNw544Gn0WKrBhdtmwZ\ngOHDh0uNDx8+PCwsbMWKFb6+vhqJRkRERERERFQADRok+g5vQADs7LSbRm88eYKAACQmSo9f\nuYJevXDwoC4yFVSDB2P7dunBK1fg749LlzTbN5SSfQ6SmZmcyyQSLFuGbt2wdSuio2FmhmrV\n0KcPqlaVdZe7O/btQ1ISrl+HrS3c3ETXa6el4cYNxMTAxQUeHrC0VOmbAebOxfffIyPjw5fb\nt+Onn7BoEdeoao5E7uvnxYoVi4uLi4+PL1KkyKfjr1+/Llq0qL29/YsXLzSZUPeyX6VPSEiw\nsbHRdRYiIiIiIiIqAL79FitXSg9Wrozjx2Fvr4tAemDKFEydKlq9elVOk8uApKdj504cO4bY\nWLi4oH599Oiheq9N7W7fRsWKEOsmhYSgXz+NZ0hJwfz52LABd+5AIkGFCujTByNG6OZd/pAQ\nTJyYs2y5UCFMmICxY5XeiXX7dgQECJcOHsRnb3IbkNTUVHNz88jISC8vL11nkSb/d0xCQgIA\nk89+b2WPvHnzRhOxVKPCqfREREREREREeufnn+Hjg59/xpUrSEpC+fLo1AkTJqDgrNf5+2/s\n3o3oaFhZoUYN9OqF06dlXX/mTD5pjL54gXbt8M8/OSMhIZg7F3/9hfLldRfrE0ePinZFARw5\novHG6Pv3aNUKkZE5I1FR+O47HDqEffs0uF71+nWsW4crV5CSgsqVERCAxo2xYAHGjMl12du3\nmDABT55g6VLl5p8+XbQ0Y4ZBN0b1mfzGqIODw5MnT27fvl2rVq1Px2/dugWgWLFimopGRERE\nREREVGB1747u3QEgNVX+m8K6kpWFM2dw6RLi4uDhgaZNUbSoGuYMDsayZTkj27dj5kyULi3r\nrnfv8vpcPfHll7m6otlu30a7drhyRatvqYv5/DwixatqMWNGrq7oR4cPY8ECfP+9Rh66ciWC\ng5GW9uHLiAisWIFvvsHmzcLXr1iBPn1Qu7ai88fH4+pV0eqpU0hLg6mpMolJIfKX9fr4+ABY\ntGiR1PjixYsBeHt7ayIWEREREREREQEK7J+oK7GxaNgQDRti8GBMnIguXVC6NNasyeu0Cxfm\n6opme/8et27JusvVNa/P1QeRkYiIEC7duoVt27QUIysLN29i50789RcePJCuOjnJurd4cc3l\nAoDMTISEiFbXrtXIQyMi8O23OV3Rj377DcnJwrdkZgpswyqD7BeyMzORkKDEbKQw+Y3R4OBg\niUQSGho6YMCAqKio9+/fR0VFDRgwIDQ0VCKRjBgxQgspJYrRQhIiIiIiIiIiwtu3aNECZ87k\nGkxMxKBBCA1Vfdr0dMyeLVzKzBS9q1gxNG+u+kM1JC0NT57Ieuv8cydOqF5VlwsXULs2KlVC\n165o1w5lysDPL1d71NdX1laebdpoNt6zZ5Bx1M29exppIM6Zo8pd9+4pcbGjo6yfVSsr5D74\nh9RFfmO0YcOGc+fOlUgkISEhVatWtba2rlq1akhIiEQimTdvXqNGjbSQkoiIiIiIiAzey5c4\neBArVmD//pyDSki3srJw7hx+/RVr1+Lvv3OOw5ZryRLExgqXvvsO6ekq5omOxsuXolULC+Hx\npUthba3iEzXhr7/QsCFsbFCyJAoVQrt2st6S/pTsZYNaOOXl6lU0bYpLl3INhoWhceOcdqSL\nC4YPF77d01P0+CB1kdEfz6aJg2cE39yXy8pKuYtbthSttmun9FFOpBiFflrHjBlz9OjRjh07\nOjg4mJiYODo6duzY8dixY6NHj9Z0vmyOjo4A7t27lyWTdsIQERERERGRcjIyMHEiSpVCmzYY\nOhRt28LFBd99J/Bqql559w7h4Vi6FOvWSbeK8ofLl1GzJurVQ79+GDgQXl6oVEnRHtBff4mW\nnj3DuXMqRnr7VlbVyAjffZfrfPbSpbFzJwIDVXycJixahHbtcPo0UlMBIDERf/0FT0/Rd+Q/\nVbKkrGqpUupJKMPo0cIrLu/fx08/5Xw5dy6Cg6Vbdb6+2LcPxsaaTejkBDs70Wp2J1q9MjLw\n/r0qN9avr9z1s2cL91ILF8aMGaoEIAVIDKKf2L179y1btqxbt653794yLtPQqfSrV68OCgpK\nSEiwKTjH/xEREREREanR8OECu0YC6N9fU3sC5t3WrRg6NNfqRW9vhIaibFmdRVKv2FjUrYu4\nOOlxa2tERqJGDTm3lykjsPvkR7t2oXNnFVO5uYlWy5fHrVtITERUFJ4+RcWKKF9e1gvI2nfj\nBqpVE14w6+KCW7dEF71mi4lBhQqi63YjItC0ad4zioqPh7296JLMkiXx6FGukZgYHDuGO3fg\n7Ix69ZTuA6ps1Ch8dhDOBz/+iGnT1P9EFxfp712uEiVw8yZsbZW76+RJ9O6NmJickUqVEBqK\nunWVm0fPpKammpubR0ZGenl56TqLNMNYiNuiRQsAx44d03UQIiIiIiIiUlJ0NFasEC6FhODC\nBe2mUcwff+Crr6Tf6T55Es2ba+N1Zu2YNEmgKwrg3TuMHSv/dtmnz6t8Nr2rK6pXF6127AgA\nNjaoXx+dOsHDQ7+6ogB+/110G4GHDxEeLud2NzeMGiVc+uILzXZFATx8KOtF9SdPpL81Nzf0\n7YuZMzF0qPa6ogCmTEHNmgLjDRpg/HiNPFFGl79uXYEPS+ztsXu30l1RAN7euHkTJ05g5Uqs\nWoWTJxEVZehdUT2XrxqjfKGeiIiIiIhI7/z5p6xuy549WoyimKwsjBwpXIqNFV2qZliysmT9\nzB89isREOTM0ayZasraGp6eKwQAsWgRTU4HxUqUwbpzq02pHdLSsalSU/Blmz8YPP8DcPGfE\n2BgDB+bpSCsFyX5N1txcX9rQhQrhf//DmDFwcvowUrIkJk7E0aPKbeupuOydQD5naYlVq3D5\nMmbNQuvWqFgRLVti4kRcu6Z6p9jEBD4+CArCoEFo1Ihbi2qa/J9ffTgL3tXVNSsrK1ZsX2ci\nIiIiIiLSW7JfQX34UFs5FHbliqzjpP/8U3tJNCchQdbh3enp+PdfOTOMGiW6mePYsXnqTzVv\njt274eyca7BhQ0REwN5e9Wm1Q3aTRJEWipERpk/HgwfYuxeLF2PHDsTGYvXqXDurakjZsihR\nQrTasKHGAyjOxgbz5uHpU7x8ibg4PHqEGTM0+FNUvDiOH4ePT67BihURHo46dVCoEMaPx4ED\nuHED4eGYMQPFi2sqCambfjT7iYiIiIiIKL+SfRZK4cIafPT58zhyBLdvf9gDsU0bhU6GefJE\n9ap2ZGXh3r0P31eFCjAzU3oGa2uYmMg6O17ur4uLC/buRbdueP481/i33+KHH5TOI6VtW8TE\n4PRpREfD2hrVqwu/Oq2HqlbFH3/IqirI0RHt2qklkRKMjDB6NMaMEa5+95120yimWDEtPcjN\nDSdO4OZNXLmC1FR4eKBmTfUs53z9GrNm4eBB3LiBYsVQqxZGjUKLFmqYmRQgvzH6+cvpcXFx\nBw8eDA4O7tChw5o1azQTjIiIiIiIiPIFHx/MmiVa9fbWyENTU9G/v/Tbx7VrY+dO+acnye4J\narSTq4g9ezBqVM7xLIUKYexYjB+v3Gngxsbw8sKJE8LVSpXg4CB/ksaNcesWNm/GpUuIj4eH\nB9q1U9t+iObmaNIETZqoZzat6d0bc+d+OI9eiqsrWrbUeiAljRyJGzcQEpJr0NgYs2ahTRsd\nZdInFSuiYkV1TvjwIZo0wcc3pJ8+xdOn2L8fc+YotNUv5ZkqK0bt7OwCAwNNTU0DAgLc3Nwm\nTpyo9lhERERERESUT/j5oU4dnD8vUKpa9cNxOmo3fLjAnowXLsDfHxcv5trA8XO1a8PWVvRN\nc9226jZuRM+euUbevsUPPyAmBr/8otxU338v2hhVfMln4cIIClLuuflbuXJYvBjffis9bm2N\nDRvk/MbTB0ZGWLsW3bph2zZcvQpLS1Stir59Ubu2rpPlU337QnDfyAkT0LRpnvbqJcWovujX\n19cXwNq1a9UXhoiIiIiIiPIdIyPs3i3wEnHFitizR9ZxLqmp2LABQ4agfXsEB2P7dmRkKPTE\ne/cg9m/V69flH2JjYSH6NrGMkhYkJGD4cOHSr7/i+HHlZvPzw/Ll0sccGRlh6lT06KFiQgIw\neDCOHEHz5h8OJbe3R0AALlyAl5eukymsVSuEhODMGRw7huXL2RXVlNu3cfiwcCkzE6tWaTdN\nAaX6HqPx8fEAnj59qr4wRERERERElB+5uODcOWzYgFOncPcuXF3RsCG+/lrWYSn376NdO1y7\nljOydCnq18fevfLf8j5yBJmZotXDh9G/v5wZfvgBjx9Dau+4woWxcSMqVJBzr+aEhSEuTrS6\ndavSq1mHDIGvLzZswLVrSE9HlSr46ivUqJHHmITmzdG8ObKy8Pat7vdeMES3buHiRbx4AQ8P\n1K8PGxtdB9KMS5dUr5KaqNIYTUtLu3HjxogRIwCUL19e3ZGIiIiIiIgo3zE3R79+6NdPoYvT\n09GhQ66uaLYzZ9CtGyIi5Jzu/fKl6tVsRkZYvRq9emHvXkRHo1Ah1KyJr7/W8WHTH/cVFXT3\nripzVqiAadNUi6N+ly7h6FHcuQNnZ9Sti1at1HO4ja5IJOyKKu3FC/Trh717c0aKFsWCBfjm\nG91lUh+phq+M088AOVVSE/mNUYn4f28kEsmkSZPUmoeIiIiIiIgKvD/+wJUrwqXjx3H8OJo2\nlXW77Palo6OiMRo1QqNGil6sBRYWsqoylt/qv9RUDBqEdetyDXp6YscOuLjoJhJpX2oq/Pxw\n8WKuwfh49O0LIyP07q2jWOog2PAV2xkjm3pPeSIRqnz2IpFI7Ozs/Pz8Dhw4EBAQoPZMRERE\nREREVKDJ3i5T7maaLVvK2rq0dWtVIukD2Sex1KunrRwaEBws3RUF8M8/8PcXPuGd8qWQEOmu\n6EdjxiAlRbtp1Ce74ftpVxRAfDymTkWpUqJ39eql6VwERRqjWZ/JzMx89erVwYMH/fz8tBCR\niIiIiIiICpbXr1WvAihVCsOGCZdq1kT37iqm0jlPTzRsKFyytVV0mwI9FBsrvZ3rR9euYdMm\n7aYh3dmzR7T08iUiI7UYRa1kNHwTE4V3UP36a7Rvr9FQlM2Qd+sgIiIiIiKifMnZWfVqtrlz\nMWSI9A6Vrq6oWBHDh2PVKlmnGOktiQRbtsDdXXrc2hpbtsDJSReZ1EH2YVnh4VqMQqr65x9M\nmIBOnRAYiDlz8OSJKpM8fiyr+uiRatF0T0bD9/VrLFmCVq1yFrk7O2PBAoEF1KQZiu4xmpWV\npfkwRERERERERED79pg7V7hkZIR27eTPYGKC5csxbBiOHcOtW4iKQng4YmMRG/vhgokTsWED\n2rRRW2btKF0aFy9i2TIcPYpbt+DsDE9PjBgBNzddJ8uDFy9Ur5LOZWVh1CgsXpwzsnkzZszA\nunX44gvlppJ9VpXhnmQlu+FrYoJDh5Caitu34eCgxCbIpA7yV4w6ODgASEhI0HwYIiIiIiIi\nIsDbG926CZeCguDhoeg8FSti0CB4eODQIek1iXFx6NIF0dF5yqkTtrb4/nscPowHD3D6NJYu\nNeyuKOQdh8U+kZ5btChXVzRbYiICA3H5snJTNW4sWjIxgZeX0tn0hCINXzMzVKnC3+3aJ78x\n2rVrVwBhYWGaD0NEREREREQEAFi/Hv3753oX3tQUo0ZhyRLl5snMxJQpwqXkZMycqXJAUpuW\nLWFsLFpt1UqLUUhJ6emYNUu4lJqKOXOUm23YMBQqJFwaOBAODsrNpj/ya8M3X5DfGJ0/f/4X\nX3wxaNCgkJCQx48fZ8rY+IOIiIiIiIhILSwtsXYt7t7F1q2YOxfbtyM2FgsWyDpuXtDNm7Le\nYz16NI8xSQ3KlMHgwcKlGjUM+LCsgiA6Gi9filaPH1duNmdn7NkDe3vp8c6dsXCh0tn0R35t\n+OYL8v+LYm1tnf2DAQMGCF7A7UeJiIiIiIhII8qWRdmyeZpB9iFLhngEU760cCFSU7F2LT7t\nMDRqhG3bYGqqu1gkz5s3qlcFNW2K69exfj0uXMCrV6hYEa1bG95ewFKyG77dukk3kQ294Zsv\nKPlRGxEREREREZGCTp7EggW4dAnPnsHDA61aYdw4FCmi1Qyyz2rXxEnu6em4exf29ihWTP2T\n51empli9GsOHfzgsy9kZ9eqhWTNIJLpOBjx8iIULceoUHj6Emxt8fDBqVJ5W+b15g+hoWFnB\nwwNmZuoLqgvOzqpXxdjbY/Ro1eLor3zZ8M0X5DdGuSCUiIiIiIiIlLZ8OUaMQEbGhy8vXMCF\nC9i6FcePw8VFezHc3VGpEm7cEK76+6vzWTdvYswYhIUhNRUAXFwwejSGDcu1UyrJUKUKqlTR\ndYjc/vc/tG+fs/Lx6VNERmLdOoSFoVo1pWe7eRNDhuDIkQ9fmpmhXz/MmQNbW7UF1jJ3d1Sp\ngqgo4WqHDtpNo9/yZcPX8PFvZyIiIiIiIlK3y5dzdUU/io1Fnz7aDjN3rvC4vT2+/15tT7l4\nEZ6e2LfvQ1cUwMOHGDEC33yjtkeQlr19i65dBd4H//dfdO2a8wutoOvX0bBhTlcUQGoqVq5E\ny5ZITs5rVB1atEh459+SJTFunNbTEClHfmNUIpFIRNauyygRERERERFRwbVqlUBXNNvRo7h+\nXath2rfHxo0oXDjXYMWKCA9HqVJqe0q/fnj7VmD899/x559qewpp0+bNeP5cuHTrFg4cUG62\nYcMQHy8w/s8/WLpU6Wz6w9cXO3agePFcg56eiIjgsUKk/7hilIiIiIiIiJT04AEGDUKlSjAz\ng5sbunfHlSu5Lrh4UdbtsquaEBiI+/exYwemT8f8+QgPR1QUatZU2/xXrsj6ptavV9uDSJvO\nnVO9KuXff3H0qGh182YlptJDHTvi3j0cPoxlyxASgnPncOYMypfXdSwi+VQ/fOn9+/cAzM3N\n1ReGiIiIiIiI9N65c2jVKmftW2wsYmOxezc2bUKXLh8G09JkzSC7qiGFC+OLLzQ1+c2bsqpi\nO5ySnpP9hrtS77/HxEDGCS537igxlYZcu4bDh3HrFhwdUacO/P1hbKzE7RYWaNECLVpoLB+R\nRqjYGE1OTt64cSOAkiVLqjUPERERERER6bHUVHz1lcAbwSkp6NMHXl5wcsKjR3IOk6lQQXMB\ndUN2C0lwB0bSf+7uqlelyF5Vpts1ZxkZGDYMq1blat1Wq4Zdu1CunO5iEWmD6N/OUpuHiu0l\n2qlTJzUnIiIiIiIiIr118CDu3hUuJSRg6VKcO4fwcFkzVKiA+vU1EU2XatRQvUp6KyAAM2YI\n75ZraYmOHZWYysMDVlZ4/164WreuKvHUZcIErFwpPXj1Kvz8cPUqrKx0kYlIS1TcY9TExMTF\nxWX48OHTp09XbyAiIiIiIiLSX5cvy6ouWSKnK2ppiV9/hVG+O+7C3R2+vqLVQYO0GIXUp3Jl\njB8vXJo7FyVKKDGVlRX69xetDhsmWkpJwYIFaNYMxYujfHkEBODECSWeK9fz51i8WLgUE4O1\na9X5LCL9I7piNOu/FdTZa0WzZOyFQURERERERAWE7O1BxRbEATAygo8PFi1CrVpqD6UXfvkF\njRvj3j3p8enT0aiRDvKQWkyfjpIlMXUqnj37MFK6NGbPRvfuSk81axauXkVEhPT4jz+ibVvh\nW16/hq9vzilPz5/jzh1s3442bdC4MapUQYsWOSs64+Jw/jxiY+Hqitq1UayYQqkiImT9oQ4P\nR3CwQvMQGSb5G52wJUpEREREREQfVKyoyl2mpnjyBPb26k6jT1xccOECfvoJBw7g9m0ULoza\ntTFyJFq31nUyygOJBIMHY9AgxMTgwQO4uqJsWYhsNiiHlRXCwhASgl27EB0NKyvUqIGgIFkH\nFgUH53RFP3XgAA4cAIDixfHbb2jVClOmYP78nPOgLCwwahSmTpW/v+3Ll6pXiQwfd4AmIiIi\nIiIihbVrBzs7xMUpd1daGl6/zueNUQBFi2L+fMyfj4wM5U70Jj1nZIRy5dRwEpGJCYKCEBSk\n0MWvXmHTJjnXPHuGTp3QsSO2b881npyMmTPx+jVWrJAzg6Oj6lUiwyd/Y5fDhw9LJJLW/33G\nFRER4enpaWNjY29vP23aNA3HIyIiIiIiIn1SuDBWrRLu+sleRmdtraFE+ohdUcq7y5eRni7/\nstRU6a7oR6tW4coVObc3awYzM9Gqn5/8AESGTH5jdOXKlQCGDh0K4MGDB23btj179uy7d+9e\nvXo1efLk7WJ//IiIiIiIiChf6tYN4eGoVy+nE1qhAjZtgqen6C1lyyp3Ug2RfkpKwqJFaNMG\n7u5o0ADDhuHWLU09KyUlrzNkZmLPHjnX2NtjzBjhUoUK6Ns3rxmI9Jv8xuipU6cAeHl5Afj1\n11+TkpKaN28eHx8/btw4/Nc2JSIiIiIiogKkWTP88w/evsWVK4iLw82b6N5dtL0CYPRoLYaj\n/9y7hx07sHw5wsPx5o2u0xi+Z8/g6YlRo3DwIGJicOYMli9HzZrYtUsjj8v7m/sAHj6Uf830\n6Rg5Eka5G0R16+LQIVhaqiEDkR6T3xh9+fIlAFtbWwBHjx4FMGTIkCJFigwfPhzA9evXNZyQ\niIiIiIiI9JKNDapVQ9GiH77s2hWTJglcFhSEIUO0mYvw5g0CA+Hmhm7dMGwYWrWCiwuWLtV1\nLAPXpw+uXZMeTEpCz564d0/9jytfXtYqbAXZ2sq/xsgICxfi+nWsXIngYMyahbAwnDmDsmXz\n+nQivSf/8CU7O7vnz58/efKkZMmS586dA9C4cWMADg4OAOKU3XKbiIiIiIiI8qupU+Hnh/Xr\nceUK0tNRtSoCA+Hrq+tYBUxmJjp2xPHjuQYTEhAcjKwsBAfrKJaBu34dBw8Kl5KSsGoVZs9W\n/0NXrUKTJkhIUH0Gb29Fr6xQARUqqP4gIsMkvzFaqVKl58+fL1mypEWLFklJSTVq1LC3twfw\n7NkzACVLltR4RiIiIiIiIjIUXl7w8tJ1iIJt+3bpruhHEyeiV6+cRb6kuH/+Ub2qslq1EBmJ\nYcNEf0Flq1oV7durOxNRviL/VfqBAwcCWLRoUbt27QB888032ePCZt0/AAAgAElEQVTHjh0D\n0KJFCw2mIyIiIiIiIspnXrzAlCnw84OHB9q2xezZat4AVMZ5O+/e4cgRdT6r4EhKUr2aF9Wq\n4dgxvH6Nv//GvHmwslL0xgoVsGcPTP5bD/f4MZ4+1VBGIsMlvzHao0ePH3/8sVixYnZ2dkOH\nDs0+nh7AmjVrAPTr10+zAYmIiIiIiIjyjfPnUa0apk5FWBhu3MD+/ZgwATVq4PZttT3i0SPV\nqyTGzU31at4VLowGDTBmDO7exeLFKF1a1sW+vvj5Z1y8CDc3vH2LYcNgZ4dSpeDsDHt7jB6N\nxETNpiUyHPJfpQcwbdq0adOmSQ2eOHFCA3mIiIiIiIiI8iA2FufO4dEjlCuHBg3g4KDrQJ94\n9w6dOuHZM+nx+/fRpQsuXsxZ35cXhQurXiUxTZrAyQn//itc/fJLLcVwckJwMH75RdY1PXui\nVy8AeP0aPj65Dox69QoLF+LYMRw/DhsbzUYlMgTyV4wSERERERERGYDERPTujXLlEBCAUaPQ\noQNKl8a0acjK0nWy/2zbJrpg89o1HDqknqf4+KheJTHm5vj5Z+HOdZcu6NBBq2GsrRWqTp6c\nqyv60YUL+Okn9aciMkBsjBIREREREZHhy8pCQAB+/x2ZmTmDycmYPBmTJ+suVm6nT8uqnjmj\nnqcMGABHR+HSl1+iXDn1PKUA6twZe/eifPmcESsrjB+PzZu1naRBA9GSRIL69QEgIwOhoaKX\nrV+v/lSfevMGp07h6FE8f67ZBxHljUKN0QMHDrRu3dre3t7Y2FjyGU1HJCIiIiIiIsrln38w\nZgxat0bHjpg4ETdv4sABHDggfPHs2fqyseb797Kq796p5ylFi2LfPpQoIT3eogXWrlXPIwqs\n1q1x8yZiYrB/P86fx8uXmDULZmbajjF0KMzNhUtffolSpQDg2TPEx4vO8PQpXr/WSLYXL9C9\nO+zs0KgRWrRA8eJo2hTXr2vkWUR5Jn/7ks2bNwcGBmohChEREREREZF848djzpycL//8E/Pm\nyVpDl5aGgwfRv78Wosnh6qp6VSn16iE6GuvX49w5/PsvypeHry86doQRXxvNM4kErq7q/MVS\ngbs7Nm1Cz55ISso17uWFVas+/Fjur7WxsfqDvXmDJk2k26DHj8PbG6dOoWJF6euzsnD/PgoX\nRtGi6g9DpAD5fydOnz4dQPPmza9cuZKSkpL1Gc2HJCIiIiIiIgIArFmTqyuaLS0N//ufrLse\nP9ZcIiV88YVou8rMDB07qvNZRYogOBihoQgPx88/o3NndkXzlS5dcPUqRo1Cs2aoUgVdu2Lt\nWhw/nnO4lqMjnJxEb3d1ha2t+lPNmSO8ODQuDqNG5Rp58ABffglbW7i6ws4OZcti4UJkZKg/\nEpFM8leM3r17F0BISIirbj8PISIiIiIiogIuKwuzZqlyY5Ei6o6ikho1MHw4Fi8WKE2ZAhcX\nrQciQ+bujgULRKtGRhg4ENOmCVcHDdJIpK1bRUuHDiE+/sPK0Fu34O2NFy9yqvfvY/RonDmD\nLVvAPRtJi+R/XlSiRAkAdnZ2mg9DREREREREJO7RI9y7p8qNjRurOYnKFizA7NkoVChnxN4e\nP/+MCRN0l4nyqQkT0Ly5wLi/v/T6TbXIyMD9+7KqDx58+PGgQbm6oh9t24YtW9QfjEic/MZo\nv379AISHh2s+DBEREREREZG4t29VuatdO9Sqpe4oqjIywrhx+PdfnDuHXbtw8SIeP8bgwbqO\nRfmRhQUOHcL8+ahVCxYWsLREnTpYuhR//glTU/U/zthYzjlUFhYAcO8ejh0TvWbdOrVmIpJD\n/qv033///b1797799tu0tDQ/Pz8uHSUiIiIiIiLdcHaGkREyM4WrdnYoUgQxMbkGGzdGaKgW\noiknu0VVp46ucxiU+/eRkgI3N5jIb2XQByYmGD0ao0d/2L5TEwcufcrTE8ePC5eKFYO7OwDc\nuCFrBtlVInWT/7eJyX9/44idTc/zl4iIiIiIiEgbihZFkyaIiBCufvEFFi/Gxo345x88fgx3\ndzRtykOHDF5SEiZNwtq1ePMGAMzN0aULFixAiRK6TmZQPm+JZmXhyBGcPo379+HujsaN4eWV\n16eMGCHaGB069ENHW3ZzVtOtW6Lc+DELERERERERGY558+Djg6Qk6fHixTF5MqysMGAABgzQ\nRTLSgORk+PoiMjJnJCUFmzfjf//D33+jVCndJTNwz5+jWzecOJFrsGNHbNgAGxvVp+3UCT/8\ngBkzpMe7dMHEiR9+XLWqrHXf1aur/nQi5cn/3CxLHi2kJCIiIiIiIgKAOnUQFoZy5XIN1quH\niAiULKmjTKQxS5bk6op+9OiRRo4PKiAyM9Gpk3RXFMCePejdO6+TT5+OiAj06IHq1VG+PLp0\nwebN2LEjZ1fTEiXQvr3o7QMH5jUAkTK4YpSIiIiIiIgMirc3btzA+fO4ehXm5qhWDTVq6DoT\nacbvv4uW/vgDb9+iUCEtppEpLg5bt+LyZSQmokoVdOiAKlV0nUnEvn34+2/h0q5dOHcOdevm\naf6mTdG0qawLVq5EVBTu3JEeHzkS/v55ejSRktgYJSIiIiIiIkNjbAxPT3h66joHaVJWFm7f\nFq2mpSEmBjVrajGQuEOHEBiIuLickR9+wPjx+Okn3WUSFx4uq3r4cF4bo3KVKIFz5zBjBvbu\nxd27sLJCjRoYPhxdu2r2uUSfUXQL6q1bt7Zq1cre3t7U1NTBwaFVq1bbtm3TaDIiIiIiIiIi\nKrgkEjlH8Xx8O1u3bt5E5865uqIAMjMxcyaWL9dRJplevZJVfflSGxkKF8a8ebhxA4mJePMG\nJ06wK0o6IX/FaGZm5tdff71p06aPIy9fvgwPDw8PD9+3b9/69eslEokmExIRERERERFRgVSz\nJk6fFi7Z2MDdXbtpRMyZI3AaWLZp0xAU9OE0drmuXMHZs/j3X1SsCB8fFC+uxoy5ODjIqjo6\nauq5gszNtfo4otzkrxhdvXr1pk2bzMzMfvzxx9u3b79///7OnTuTJk0yMzMLDQ1ds2aNFlIS\nERERERERGbD79/Hjj2jfHt7eGDgQf/wBHmWsiG+/FS317QsLCy1GEXf0qGjpxQtcuyZ/hhcv\n4O+PGjXQvz9++AHduqFMGfz0k6Z+k7RuLavq56eRhxLpJfmN0V9++QXA7Nmzp02bVq5cOUtL\nS3d396lTp86ePftjlYiIiIiIiIiE7d6NKlUwYwb27UNkJNauRefO6NwZKSm6Tqb3evZEv34C\n415eerR9Z3y86lUA6enw98eBA7kGU1Lwww+YPTuv2QS1bo1mzYRLPXrwKDMqUOQ3RqOjowF0\n795dajx7JCoqShOxiIiIiIiIiPKDmzfRvTvevZMe37MHY8fqIpBBkUgQEoJNm9CsGYoVg40N\n6tXDvHmIiICNja7D/cfJSfUqgI0bce6ccGn6dOmtS9VCIsHOnWjTRnq8Rw+sXav+xxHpsbye\nSs8NRomIiIiIiIhELVokujJ01SpMnYoiRbQbyAB1747PVmvpkbZtceuWcMndHZUqybl93z7R\nUlISjhxBt26qZxNTtCj278fp0zh9Gvfvo1w5eHtzrSgVQPIbox4eHhcuXNi6dWtwcPCn41u2\nbMmuaioaERERERERkaGLjBQtpabi7Fn4+moxDanV7dvYuRMPHsDSUvj8pfnzIXc92dOnqlfz\nqEEDNGigwfmJ9J78xmjfvn0vXLgwbty4N2/e9OzZ09nZ+cmTJxs2bJg5cyaAfoKbfRARERER\nERERgMREWdWEBG3lIHWbOxcTJyI9XbhauDCWLUOnTvLnKVpU9SoR5Y38xujgwYNPnDixbdu2\nyZMnT548+dNSYGDgwIEDNZaNiIiIiIiIyMC5uODePdFq6dLaS0JqtGkTxo0TGDc2xoABaNUK\nzZujcGGFpmrWTPRteiMjNGmiekgikkf+4UtGRkZbt27duHFjixYt7OzsjI2N7ezsWrZsuWnT\npo0bNxoZyZ+BiIiIiIiIqIDq0kW0VLYsatfWYhRSnylThMczMvD4MTp3VrQrCqB/f5QsKVz6\n5hu2zok0StHDlwIDAwMDAzUahYiIiIiIiCi/CQrC+vW4dEl63MQEy5aBi40M0cOHuH1btBoR\nodxshQrhwAF07IjY2FzjXbpg+XJV4pFq7t/H48eoUAH29rqOQtqT11PpiYiIiIiIiEiUhQXC\nwzFoEHbvRlbWh8FSpbBiBdq102myfC0lBUeO4No1ZGSgShW0bAkrK7VNHh8vq5qYiNRUmJkp\nMWG1arh2Ddu24exZPHuGChXg64tmzfIYkxSSlYWff8aMGfj33w8jVatiwQK0aqXTWKQl8huj\nYWFhfn5+rVq1OnTo0Kfjfn5+YWFhYWFhvjxBj4iIiIiIiEiMvf2Hs8svX0Z8PDw8UKOGco0z\nUsqJE+jZEw8f5ow4OuK33+Dvr575nZwgkeS0uaUUK6bKL66VFfr0QZ8+eUtGyhs9GosW5Rq5\ndg3+/ti8Gd266SgTaY/8RfvLli0DMHz4cKnx7JEVK1ZoIhYRERERERFRvlK6NNq3R69eqFeP\nXVENioqCv3+uriiA58/RuTP+/ls9j3B0RL16otW2bdXzFNKCs2elu6LZMjIweDASErQeiLRN\nfmP01KlTABo1aiQ1nj0SGRmpiVhERERERERESkhKwsuXug6hYRkZeP5c1yH03qRJePdOYDw1\nFePHq+0pc+fC1FRgvEgRTJ6stqeQpm3aJFp69QoHD2oxCumG/MZoQkICABMT6Zfus0fevHmj\niVhERERERERE8mVmYtkyVKoEGxs4OMDREYMG4cULXcdSt7Aw+PjAxgbFi6NIEXTqhKioD6Wz\nZ/H99+jUCd27Y84cPH6s06C6lpmJAwdEqydPqm0NYJMm2LkTjo65BsuXR3g43NzU8wjSgjt3\nVK9SviB/j1EHB4cnT57cvn27Vq1an47funULQLFixTQVjYiIiIiIiEiGzEwEBmLr1pyRFy+w\nZg0OHkRkJEqV0l0ytVq+HMOG5Xz55g327EFYGP76C/v2YeHCnNKWLZg+Hb/9VnD3Rnz7FklJ\notXMTDx7Bltb9TyrfXvExuLYMVy7BjMzVK+Oxo3x2aoy0muyN7XglhcFgPwVoz4+PgAWfbbn\nwuLFiwF4e3trIhYREREREREVIBkZuHMHd+8iM1OJuzZuzNUV/ejBAwwdqq5oOnb7NkaNEhhP\nSkKXLrm6otnevUOPHrh0SQvR9JGtrfAb7h/Z2anzcVZW8PfH2LEYMQLNm7Mranjq1FG9SvmC\n/MZocHCwRCIJDQ0dMGBAVFTU+/fvo6KiBgwYEBoaKpFIRowYoYWURERERERElD/FxaF/f9ja\nonx5lCsHW1sEBeH1a4Xu/fVX0dLevflkO87ff0damnBJ7GcpLQ2zZ2sukV4zNkaTJqLVWrXU\n3BglQ9enD2xshEs1asDHR7tpSAfkN0YbNmw4d+5ciUQSEhJStWpVa2vrqlWrhoSESCSSefPm\nfX4oExEREREREZFC4uLg5YVffsl5/fn9e6xeDW9vhXqjH/fZ/FxmJm7cUE9I3ZLxPcpw/Li6\ncxiOyZNFV25OnardKKT3nJ0RGgoLC4HxrVthbKyLTKRV8hujAMaMGXP06NGOHTs6ODiYmJg4\nOjp27Njx2LFjo0eP1nQ+IiIiIiIiyrcmTcLNmwLjUVGYNk3+7RKJ6lVDodp3UZDPSfb2xvr1\nsLbONWhujp9/Rvv2OspEeqxTJ5w/j2++QdWqKFoU9eph7FhcvoyKFXWdjLRB0f0vmjZt2rRp\nU00mISIiIiIiooIkIwMbN4pWN2zAggVy2oJVq+LoUeGSsTE8PPIUT09UqYJdu5S+y9lZA1EM\nR2AgmjfHtm24dg2ZmahcGV27onRpXccifVW5sqx9OShf48bAREREREREpAvPn8t6X/7FC8TF\noVgxWTP07y/aGO3UCfb2eYqnJ3r1wpw5SE0VKJmaim4/2qGDRkMZACcnDB+u6xBEpO8UepX+\n7du348ePL1++vJmZmeS/z+u8vLwkEsnVq1c1GY+IiIiIqCA5fRpjx6JtW3TrhunTcf++rgMR\naZLcI7xlHy8O4Kuv0KuXwLi7O5YtUzGVvilXDosWCYxbWmLOHOGfQ2dnjB+v6VxERPmA/Mbo\nmzdvGjZsOGfOnDt37qR98mFUnz59AGzYsEFz4YiIiIiICoqsLIwYgYYNMW8e9u/Hjh2YNAke\nHrJeNCYydPb2cHERrbq5oVAhOTNIJFi3DmvWoGZNmJkBQJkyGD4cZ8+iRAl1RtWtb79FWBga\nN4aVFQAULYrOnXHuHEaOxK5dcHLKdXG9eoiIgKOjTpISERkW+Y3RGTNmREdH16tXLyYm5tPx\n7C1HDx48qKFkREREREQFyJIlWLJEejApCX364OxZXQQi0jyJBEFBotVvv1V0kgEDcPEiEhOR\nkIB797BkCYoWVVdGfeHri+PHkZDwYYeBXbtQuTIAtG+P2FgcPoxlyxASgrNnceYMKlTQdVwi\nIsMgf4/RXbt2AViyZImrq+un46VLlwZw584dDSUjIiIiIiooMjIwe7ZwKT0ds2dj507tBiLS\nlu++w99/Y98+6fHOnREcrNxUpqbyX73XhNRUbNmCyEjExqJsWTRsiMBAmJurMlVWFjZuxNat\niIqCqSmqV0e/fmjdOucCIyOBjVMtLNCiBVq0UP1bICIqqOQ3Rh8+fAigZs2aACQSSVZWVvZ4\namoqgPT0dE3GIyIiIiIqAG7exLNnotUTJ7QYhUi7TE2xZw/WrMGGDYiKAoCqVdG7N/r2hZFC\nR2Lo2OPHaNsWly/njKxdiwUL8NdfKFNGuanS0hAQgD/+yBm5dQs7dmDkSCxcqJ60RESUm/z/\n0lhbWwN4//691Hj2WlFnZ2dNxCIiIiIiKkDevlW9SmTojIwQFISTJxEfj/h4/O9/6N/fMLqi\nmZno3DlXVzRbVBQ6dkRGhnKzzZyZqyv60aJF2LJFxYRE+UN6Oh48wCfH3hCpi/z/2NStWxfA\nsWPHAHw8kh7AqlWrADRu3FhT0YiIiIiICoiSJVWvEhUQCQmYNg0+PiheHFWrolcvXLqk40iH\nDoluAXz5MvbuVWKqjAysWCFa/XwDYqIC4vhxNG4Ma2uUKQMbG/j4ICJC15koX5HfGB0+fDiA\nkSNHnjx5MrsxGhMT8913361du9bY2DhY2W1fiIiIiIhIiosLatcWrXbsqMUoRHrp8WPUqYPJ\nk3HyJJ4/R1QUQkPh6Ynff1dxwn370LEj3Nzg5ISWLbFqldILPAH873+yqkptgnHvHl68EK2e\nP4//NrUjKkA2bUKLFvjf/5CaCgCpqTh5Er6+CA3VdTLKP+TvMdq+ffsJEybMmjXLx8cne8Td\n3R2ARCJZtGhRbRn/B46IiIiIiBS0cCF8fQXeEyxZEhMm6CIQkTLCwvDnn4iORpEiqFEDffvC\nxUWd8/fqhdu3pQfT0jBgABo0UPoQ9pEjsXhxzpfPnuHIEezciT//hKWlEvO8eaN6VUpysqxq\nejrS03VztBSRrrx4gaAggU8sMjLw7bfw9YWTky5iUX6j0L4tM2fODAsL69ixo6Ojo4mJib29\nffv27Y8dOzZs2DBN5yMiIiIiKhCaNMHevShVKtdggwaIiICjo44yESkgPR09e8LPDytWICIC\nu3djyhR4eGDnTll3ZWVh3z4MHoxmzdCtG376CU+fil4cFYWjR4VLqalYtUq5wNu35+qKfnT4\nMCZNUm4q2dtcSP1xlq10aVl9T9lVonxpxw4kJAiXEhOxfbt201C+JX/FaDZfX19fX1+NRiEi\nIiIiKtD8/HD3Ls6cQVQUrKxQvTpq1tR1JiIAwMOHSE6GmxuMjaVLkydj40bpwXfvEBiIixdR\nubLAbCkp+PJL7NmTM7JjB+bNw5YtaN1a4Prz52Vlk1393LJloqU1azBjBszNFZ2qQwdMnCir\nqjhbW7Rrh927hatffaXEVET5w/Xrqlf1TXIyMjJgba3rHCRA9ZP+MjMz//jjj0aNGqkxDRER\nERFRgWZmBh8fBAWhVy92RUn3kpIwfjzs7FC6NCpUgI0NevTItbTz/XvRc4FSUzF/vnBp9Ohc\nXdFsb97giy9w757A9SkpskLKrn5ORiP17VvcuaPQJEeOwN8fLVrASOTf1N98gzp1lAs2f77w\n8vDKlbmfBhVEn5z+LUDsj55eSUvD7NmoVAk2NihUCOXKYdIkJCXpOhblosrvpOTk5NWrV1eq\nVKlz586nTp1SeyYiIiIiIiLSsZQU+PlhzhzEx38YSU7Gpk3w9MTDhx9GLlzAu3eiM5w8KTD4\n6hVWrxa+XqzNWq6crJyyq1KysgR28v3UkiVyjlQCMH8+WrbEgQN4/hyZmdJVU1MEByv9gj8A\nNzecOgU/v5wRY2P07Injx1G4sNKzERm66tVlVatV01YOVaWkoHVrTJiAmzeRkYHMTNy9i+nT\n0bQpEhN1HY5yiDZG9+/f7+npaWlp6eDg0Lt377i4OACJiYnTpk0rXbp0UFDQ7du33dzcli9f\nrsW0REREREREpBXLlgm3CB89wsiRH34stgNgtrdvBQZPn0Z6uugtgr1Ub2+ULi16S2CgrAxS\nJBK4u8u6YO1aNG6MgADRhajnz2PcOOGSuzv++AP372PxYpiZKZHq0xkOHkR8PCIjcfYs3rxB\naCjs7VWZisjQffEFihUTLhUtim7dtJtGeQsWCG+O/M8/mDJF22FInHBj9MSJE+3btz979mxy\ncvLLly9///33rl27Xr58uXLlypMnT37x4kXdunW3bt1669atIUOGaDkxERERERERadzvv4uW\n/vzzw5Hrso+eF6yq0Es1NcXatcKnD/XoAX9/WRMK3iLX9u0QO2p41SqBVaLZ7t5F+fIoUUK5\nPJ8rUgReXqhblzsSUoFWpAjWrxfY89fMDOvWwc5OF5mUERIiWlq3DhkZWoxCsgg3RufPn5+Z\nmenn5/f48eNHjx75+vpGRET4+vo+fPiwevXqhw4dOnv2bEBAgPHnG28TERERERGRocvKwq1b\notW0NNy9CwBVqqB8edHLOnUSGJTdSxU7yb1VKxw9ilq1ckaKFMGMGVi3TtZsgkaNUmj3z19+\nwf37AuNXrsi66/JlpfMQkZi2bXHmDDp3hoMDANjbo1MnnD6t3MlmOvHuHWJjRauvXuXarJl0\nSvhU+tOnTwOYP3++s7Nz9g9q1Kjx4sWLrl27btq0yVTwkzoiIiIiIiLKHyQSgQPoP5X9r0KJ\nBEuWoEMHgbfjK1ZEcLDAjfXro0QJ0aaAYC81m7c3LlzAq1e4fh1OTnB1lZNQjJUVjh7FuHH4\n7TdZBzdlZuL4cfTqJT0uYx8AuVUiUlaNGti1CwDev4eVla7TqE9Wlq4T0AfCK0azdxStUKFC\n9peVKlXK/sG8efPYFSUiIiIiIso/kpOFx2vWFL3FwgImJh/+Yd+mDXbuRMmSuS7w88PRo7Cx\nEbjXxASLFwtPW6sWBg6Uk7ZYMXh7o1w5Fbui2QoVwsqVSEhA7dqyLouLExisWFHWLbKrRKQy\nw+qKWlujTBnRatGiathzg9REuDGakZEBwOy/7aI//qBs2bJaSUVERERERESadOoU2rWDvT0s\nLVG6NL7++sPb8R8NHix6b3IyKldGhQrYtw8AOnRATAxOncLatdi2Dbdu4eBBODuL3h4QgM2b\n4eiYa7BTJxw6JLCfoOaYmso5iMnJSWCwd2/R6ytXRr16eU1FRPlDv36ipd69YSL8AjdpnyRL\naPmuRCIB8Gnp85GCY/Xq1UFBQQkJCTaCH3gSEREREREZlvXr0b+/9HvftrYIC0ODBh++zMrC\ngAH45RdZ85iYYNMmFY+HTk7GuXO4fh12dqhdG66uqkySR+vXo08f4ZK5OR4+/LCzoZQBAwSO\nVbG2xtGj8PRUb0AiMlTJyfDzw4kT0uO1ayMiAoUK6SKTzqSmppqbm0dGRnp5eek6izThFaPZ\nJJ/4fESqRERERERERAbg/n0EBQnshpmQgB49crbdlEgQEoKNG9GkifBL8QDS0zFkCN6/VyWG\nhQW8vTFgAL74QjddUQA9eogexDRhgnBXFMCaNVi2LOc9WVNT+PnhzBl2RYkoh4UFwsIwdSpc\nXZHdOnNxwfjxOHGioHVF9Zysxqg+e/fu3dSpU6tVq2ZlZWVtbV27du1Fixalc6NrIiIiIiIi\n2davF91XNCYG4eG5RgIDcewYAgJEZ3vxAkeOqDOeNpmYYP9++PrmGjQzw48/YtIk0bskEgwd\ninv38OoVoqPx7h0OHkSVKpoOS0QGxtwckyYhJgZv3uD1azx4gFmzYG2t61iUi/CmBvr2yrzU\ni/yvX7/28fG5du3axwsuXrx48eLFw4cP792718jIULu9REREREREGnf1qpxqu3bSgzExsm6R\nXdVzjo4IC8P58zh3Dk+folIleHujVCmF7rWzg52dhvMRkeGztdV1AhJlkD3EKVOmXLt2zdra\neuXKlc+ePXv69OnixYvNzc3379+/du1aXacjIiIiIiLSYxkZsqqZmQKDFhaybrG0zFMefVCn\nDgYNwpQp+OorRbuiRERk+AyyMbpr1y4AM2fODAoKcnR0dHJyCg4OnjhxIoDQ0FBdpyMiIiIi\nItJjHh6yqpUqCQzK3j2TR7ETEZFhMsjG6LNnzwB07dr108EePXoA+PT9eiIiIiIiIpL29dcw\nEd5UDU5OaN1aYHzAANF98Zo0Qa1aastGRESkRQbZGPXw8ABgk/tgxFKlSgF4r9p5iERERERE\nRAVEpUqYOVNg3MwMv/0m3AAtVQqbNsHKSnq8YkVs3Kj+hERERFphSI1RyX8uX74MIPt/P4qL\niwPg7Oysm3BERERERESG4rvvsGsXatWCsTEAmJmhRQucPCm8XDRbhw64fBlDh6J+fZQpA19f\nzJ6N8+dRsqTWUhMREamXyAsUhmDBggU+Pj4fvzx58iSAZlECJa4AACAASURBVM2a6S4RERER\nERGRgejcGZ07IzkZT5/CxUX05fpPlSuHZcs0n4yIiEhLDKMxmpWVJfealStXAhgwYIDm4xAR\nEREREeULFhZwddV1CCIiIt0wjMaoIo4cOaLrCERERERERERERGQYDGmPUSIiIiIiIiIiIiK1\nyD8rRomIiIiIiPKhd+9w5gyio2Fvj5o1UamSrgMRERHlE/mqMSqRSKDYhqQfPXjwoFWrVmlp\naTKuefv2rbLTEhERERERqUFoKEaOxKtXOSP+/vjlFzg56S4TERFRPpGvGqMqKFGixMSJE5OS\nkmRcc+LEiY0bN2Z3XYmIiIiIiLRk82b06iU9uH8/fH1x9iwsLHSRiYiIKP/IV41RFRZ1mpqa\nfv3113Kn3bhxo6qhiIiIiIg0LCUFt27B1hZly+o6CqlPWhpGjRIuXbuGVaswYoR2AxEREeU3\nPHyJiIiIiMhg3bmDdu1gY4Pq1eHqCjs7/PgjUlJ0HYvU4cwZ/PuvaHXPHi1GISIiyp/y1YpR\nIiIiIqICJDoa3t6Ij88ZiY/HjBk4exZ//QVjY90lI3V4/Fj1KhERESmAK0aJiIiIiAzT4MG5\nuqIfHTqEX3/VehpSt0KFVK9SHt2/j4gI3LmDjAxdRyEiIg0ypMboq1evlixZ0rZtWzc3N1tb\nWxMTE1tbWzc3t7Zt2y5ZsuTVpwc1EhERERHlb/fv48QJ0eqGDVqMQprRoAHMzESrjRurOG1m\nJu7excWLSE5WcYb8bccOuLmhbFk0b/5/9u4zLorr6wP4jy6ISLMjIoKCHXvvvWNBE5WoMepf\nYxS7xGhi7zVGsUajxo5GY68Y7EpTFMTeFSyAIPU8L9iHddeZ2QK7K3K+n3kBc9uZYUH37J17\n4e6OEiXw++/QfDcLxhhjeUKeSYxu2bLF1dV19OjRhw4dun//fmJiYkZGRmJi4v379w8dOjR6\n9GhXV9ct/P8/xhhjjDGWT9y5I1UaHa2vOJjO2Nlh+HDhImtr5Z2XkpOxbh0GD0arVhg6FFu2\nIC1NudXHj5g0CXZ2cHNDjRqwtkaHDoiJ0UnwedTatejVC/fvy8+8fo2RIzFxouFiYowxpkN5\nIzF67NgxX1/f+Pj4du3a7dixIyYmJikpKSMjIykpKSYmZseOHe3atYuPj/f19T1+/Lihg2WM\nMcYYY0z3zMy0L2V5xbx58PFRPmlnh7174ewsP3P3Lry88MMPWL8eJ09izRr074+6dfH8ubxO\nWho6dsS8eYiPl53JyMDhw6hTB7du6fgy8ojYWIwZI1y0aBHCwvQbDWOMMX3IG4nR2bNnE9Gk\nSZMOHz7s4+NTrlw5S0tLY2NjS0vLcuXK+fj4HD58eNKkSUQ0e/ZsQwfLGGOMMcaY7lWpAlPx\nnVS9vPQYCtMZc3Ps2IGjRzFqFNq2RZ8+mD8fUVFo3VpeJy0NXbogKkq5bUgIevaUPwO+bh1O\nnRIY4u1b0Xmp+c2BA0hMFC7KzMSOHfqNhjHGmD7kjcTotWvXAIwbN06iTlZpVk3GGGOMMca+\ncvb26NNHtJRTXV+TNm2wdCmOHMHff2P8eBQpolC6dy8iI4Ubnj8vT4b+9Zdo/2fP4smTXIo1\nL7t7V6qU1xxgjLGvkfiHzIwxxhhjjOVzT5/i+HHcugV7e3h5oVUrGH9JEwuWLcONGwgNVT7v\n74+2bQ0REDOEc+dUlLZsCUguSkuEO3fg5JTLgeU5BQpoX8oYYyxv+pL+YyeuZs2aABYuXChR\nJ6s0qyZjjDHGGGM5NWcOXF0xcCDmz8ekSWjbFl5eAg8sG5C9Pc6fx6xZqFMH1tYoVQrt2+PQ\nIcyaZejImB69f69WqcQG9ypL84latbQvZYwxljfljcSov78/gLlz57Zv337Xrl337t1LTk7O\nzMxMTk6+d+/erl272rdvP3fuXCMjo8mTJxs6WMYYY4wxlvetWAF/f6SmKpwMD0fr1nj3zkAx\nCbG0hL8/Ll1CQgKePMGhQ2jf3tAxMf2SnumZXSqx7Ky5OSpVys2Q8qhWrVCxonCRgwP69dNv\nNIwxxvQhbyRG27Rps3nz5kKFCh05ciRr8yUrKysTExMrK6uszZeOHDliY2OzefPmNm3aGDpY\nxhhjjDGWx338iKlThYseP8aKFfqNhjFJXbqIFhkbo1Mn2dcjRohW69sXtra5HFVeZGqK3btR\nsqTy+UKFsHMn7O0NERNjjDHdyhuJUQD9+/e/d+/e4sWLO3To4OLiYmVlZWxsbGVl5eLi0qFD\nhyVLlty7d68ff4jHGGOMMcZy7sIFqWmhR47oMRTGVKlfH337Chf99BMqVJB93b49/P0F6tSq\nhSVLdBVbnuPpibAw+PujUSMUL47atfHjjwgPR4sWho6MMcaYTuSlzZccHR39/Pz8/PwMHQhj\njDHGGPuqvXolVfrypb7iYEw969fDzg6rVyM9XXbGwgJjx2L6dIVqs2ahUSP88QfCw/H+PSpW\nRLduGDUKFhb6D/nL5ejIq/Qyxlj+kZcSo4wxxhhjjOmDo6P2pYzpn4UFVqzA5Mm4cgUPH6Jc\nOdSujaJFBWq2b8+r0DLGGGPZODHKGGOMMcaYovr1UbAgPnwQLm3VSr/RMKaekiXRtauhg2CM\nMcbykjyzxihjjDHGGGN6YmUlvBojgCJFMGqUfqNhTCtpaYiKklotlzHGGMv3ODHKGGOMMcbY\nZyZPxrhxMFb833LZsjh6FEWKGCgmxtQTEYG2bWFtDQ8P2NnBzQ1r1oDI0GFpIjwcmzdj2TIc\nO4aEBENHwxhj7KvFj9IzxhhjjDH2GSMjLFiAQYNw+DBu3YKDA6pXh7c3b1PDvnTnz6N1ayQl\nyc/cvYuhQxEQgI4dUaUKOnaElZXh4lPlyRP4+uL0afkZOzssW4b+/Q0XE2OMsa8WJ0YZY4wx\nxhgT4ekJT09DB8GY2jIyMHCgQlY02/XruH4dAIoXx9ataNFCdW+xsbC0RMGCuRykhA8f0LIl\noqMVTr59C19fmJujd2/9RcIYYyx/4EfpGWOMMcYYY1+1x48xbRq6dkXjxhgyBPv25bHnytV3\n4YJyVvFzL16gc2fcvCla4c0bDB+OYsVQpAgKFYK7OxYvRkZG7kYqbMUK0fjHjNFTDIwxxvIT\nnjHKGGOMMcbYF+/ZM6xejcuX8fw5KlRAixYYOJCf61fL/v3o1w+JibJv//sPa9eiSxfs3PkV\n3sCoKLWqJSXh11+xa5dA0fPnaNQI9+7JviVCTAzGjkVQEPbsgYlJroUq6MAB0aJnz3D1KurW\n1W0AjDHG8hlOjDLGGGOMsXzvzh2EhODVK3h4oG5dFCpk6IAUnT6N7t3l24uHh2PXLqxZwztB\nqXbnDvr0wcePyuf/+Qfjx2P5ckPEpEvqJy6PHhU+7+cnz4p+av9+rF+PIUO0DExNT59qX8oY\nY4xpjh+lZ4wxxhhj+VhcHLp3R/ny6N0bI0eidWuULo01awwd1idev1bIimYLCeHtaFRbulQg\nK5pl9Wq8favfaHSvWjV1ayYkIDlZ+eS7d9i7V7TJhg1aRqU+W1vtSxljjDHNcWKUMcYYY4zl\nV2lpaN8egYEKJ9+/x9ChWLfOQDF9Zu1agaxolqNHER6uq3FjYjBkCKpUQaFC8PLCjz/iyRNd\njaU7//0nWpSWhsuX9RiKXnh5qfuwubU1LC2VT965g7Q00SaRkdoHpqYmTUSLChRAnTo6D4Ax\nxlg+w4lRxhhjjOlFZibu3kVsrKHjYOwTmzbhyhXhovHjhbf2lhYXh3HjUK0aLCxQujS6dsW5\nczmMERcuaF+qtZMn4eWFtWtx4wYSExEaipUrUbVq3sskZi8tKighQV9x6NFff6FECdXVWrUS\nOGlkJNVEujRXjBmDggWFi/z8YG2t8wAYY4zlM5wYZYwxxpiOPXmCPn1QqBDc3FCkCEqVwuzZ\nSE83dFiMAfv3ixa9e4egIM16u38fXl5YtAjh4UhNxZMn+OcfNG+OFStyFOSHD9qXaufdO/Tp\nI5BSfPsWPj4Cz19/yUqXlip1dtZXHHrk7o7QUIwcifLlYSzyds/CAtOmCZwvXx7m5qI9V66c\nOxFKcHFBYCDs7ZXPf/cdpk/X+eiMMcbyH958iTHGGGO6dPcuGjbEy5fyM8+e4eefcfEiAgN1\nvsExY9Kk93LR9MlxX188fqx8MiMDfn5o2hRVq2rWW7YyZaRKXVy07FbC9u2ik7sfPsTBg+jV\nK/cH1RFvb5w9K1zk7IyaNfUbDQDg2jUcOICbN2Fri6pV0bevQB4wh4oWle0rlZGBP//EyJEK\n6WwHB2zejOrVBRra2MDHB1u2CHc7eHAuxymodWtERWHzZoSG4u1beHqiY0c0baqPoRljjOU/\nnBhljDHGmC6NGKGQFc124AA2bcKgQXoPiLFPFC6sfamS8HDR5SwzMhAQgJUrNejtUz174s8/\nhYsKFxZ+IDqHQkKkSq9fz0uJ0aFD8eefCA1VPm9qihUr9P3ZDBH8/LBsmcLJX3/F9u1o3Von\nI5qY4Pvv0bEj/vkHN27AwgKVK8PbGzY2ok0WL8bVq7h9W/l879747judBPk5R0eMGaOnsRhj\njOVvnBhljDHGmM48e4Zjx0RL//yTE6PMwJo0wZkzwkXGxmjYUIOuwsKkSj9PzKWlIToajx/D\n3R1ly4o+8gygY0d064Z9+wSKFi2SynBpLTVV+9IvTYECOH4cQ4ciMBBEspMlS2LlSnTpou9g\n5s9XzooCePMG3bohPBzlyulq3OLFMWSI6moPH+LcOURHY+hQXLuG4GA8eABTU1SsiKFDMWyY\nPtYYZYwxxvSLE6OMMcYY05noaHkm4nNRUXoMhTEhw4dj+XLhPd8HDULJkhp0JbGXN6CwqG5m\nJhYtwpw5ePtWdsbZGfPno3dv0eZ//43Jk7FqFVJSZGeKF8fChejbV4MI1efurn3pF8jREXv2\n4NEj+aPZWbtj6VlKCubMES5KSsL8+QgI0G9An8jMxOTJWLxY4YXati3OnEGJEjAzM1hgjDHG\nmI5xYpQxxhhjOiP9mCovMMoMrlgxHDiAHj3w6pXC+U6dZEs0qq9CBXVLR43C778rlD56hD59\n8OQJRo2CqdD/zwsUwJIlmDYN4eF4/hzly6NSJalNcnLIxwe//iqc6i1YEN7euhpXp5ydDbzV\nUkgI3r8XLRWbuawfU6Zg/nzlk0ePwscHwcGGCIgxxhjTE96VnjHGGGM6U7GicJYnS7VqegyF\nMRGNGuHWLSxejL590aYNRo7EwYP45x9YWmrWT716UlMp+/dHZiZOn8bYscpZ0WzjxqFgQdSr\nh3/+Ea5ga4smTdC7N7y8dJgVBeDmhhkzhIuWLEGxYjoc+ismODE5W/b0Yf179gwLFwoXXbqE\nHTv0Gw1jjDGmVzxjlDHGGGM64+CAXr3w99/CpUOH6jcaxkTY28PPL6edmJhgwwa0aaOw/XeW\nH36AkxOqV0dEhIpOUlNx6RK6dsXcuZg4Mach5cTEiShVClOn4v592ZkKFTBvHrp2zf2xbtzA\nlSuymbCNG3+1idcSJaRKNVq3IXcdPy61EMShQ/j2Wz1GwxhjjOkVJ0YZY4wxpkvLlyMsDJGR\nyud//BHduhkiIMZ0plEjnD+PMWMQFISMDABwcsKECejdG9Wr4/lzDbr6+We0b4+qVXUUqVr6\n9UO/fnjxAg8ewM0Njo65P0RcHAYOxIED8jMWFvj5Z0yZkqN9fuLjYWUlNV3dIKpUgbMzHj0S\nLu3USb/RfOLlS6nSFy/0FQdjjDFmAPwoPWOMMcZ0ydERly7h559RuTLMzFC4MJo0wY4dWLHC\n0JExpgPVq+PUKXz4gPBwvHyJx48xciQWLtQsKwogIwN//qmTCDVVvDjq1dNJVjQjA506KWRF\nAaSkYOpUzJqlTYcvXsgm5xYuDGtr1K0rOl3dIIyNsWiRcFHp0hgzRr/RfMLOTqrU3l5fcTDG\nGGMGwIlRxhhjjOmYtTVmzkREBJKS8O4dzp6Fj4+hY2JMlywsUKUKihaVfXvokDadfD7P+iuz\nfTsuXhQumjULr19r1tvdu6hRA+vW4elTAEhJweXL+PZbjB2b0zhzUc+e2LwZtrYKJ2vXxsmT\nhsw/tmghNT+3RQs9hsIYY4zpGydGGWOMMaYvX9qTrYzpBz+MLOjgQdGijx9x4oRmvX3/vfC0\n3MWLNe5Kp/r3x8OHOHAAc+di9WqcP49Ll6S27dKDcuXg6yta9N13+o2GMcYY0yt+f8IYY4wx\nxpgu2dsjLk7jVpUr6yCUL4n08gIaLT4QHY2zZ0VL165Fq1Ya9KaRzEzcuIHISFhZoWpVuLio\nbmJjg06dDLmo6OdWrUJCAvbuVTjp6Yn9+2FpaaCYGGOMMX3gxChjjDHGGGO61KIF7tzRrImJ\nCQYO1E00XwzppS2lS5XcvClVeuOGBl1pJDgYgwfj9m35mXbtsHYtnJx0NaKOWFpizx4EBeHU\nKdy5g5IlUasWvL1hbm7oyBhjjDHd4sQoY4wxxhhjujRhArZswYcPAkV+fli3DgkJyufnz0el\nSlJ9njyJM2dw7x6cnFCnDrp2zXtLVTRrhn37hIuMjNC0qQZdEeVKRJq5dAmtWyM5WeHkkSNo\n1gxXrmiW2P1CNGmCJk0MHQRjjDGmV3nt/0+MMcYYY4zlLa6u+Ocf9OmjsKGQkREmTsTs2Rg+\nHL/8ghMnEBsLKyvUrAl/f7RrJ9pbQgJ698bhwwonq1fHvn0oU0YqjJQUREbiwQM4O6NSJRQo\nkLOryrHvv8eiRXj8WKDI1xeurhp0VbGi9qVaGz1aOSua5e5dzJ+POXNy1DkRjh9HcDDu30eZ\nMmjQAO3aSW2RxBhjjDGtcGKUMcYYY0wTN2/i3DlER8PJCXXromFDQwfE8oKsp+l37kRICBIT\n4emJzp1lq4i6ueHvvwHg7VsULgxjVZujDhignBUFEBqKTp1w/TpMTXH9OiIikJaGKlVQuzZM\nTADg99/x66/ypU4LF8bPP2PsWNXD6Y61NQ4dQteuuHdP4XyXLli1SrOuPDzQsCGCg4VLv/9e\nywglPH2KixdFS/fuzVFi9O1b9OyJU6cUTjZqhL17UaSI9t0yxhhj7DOcGGWMMcYYU09qKoYP\nx4YNCs/ttmqFbds4W8FUK1wYP/wgVUGdh69DQ5V3yMl24wYWLcKOHQgNlZ90c8PGjTh9GlOn\nKlR+/x4TJuDVKyxYoHpQ3alcGTduYMcOXLmC589RvjxatdJyo6T169G4scKc3CzDh0tNvwVw\n8yaOHUN0NIoUQc2a6NhRrUUJHj2SKn34UHUPEnx8lLOiAP77D927IyiI540yxhhjuciIDLIi\nT54SEBAwbNiwhIQEa2trQ8fCGGM6k5GBu3cREwMXF7i7w8xMs+aRkTh6FFFRcHREzZro1Enj\nHhj78g0dijVrBM7Xr4///jPkzDv2tQoMREAAIiKQlIRKldCzJ9LSMGGCaP0CBfDxo/JJS0uk\npSE9XaC+iQnCwlQsZpqHPHkCf3/8+y/evIGpKTw94ecntYdVRgZGjcIffyh81FGpEvbuRfny\nKsYKC0P16qKlDg6IjdUw+v939iyaNRMtPXQI7dtr2TNjjDFmIKmpqRYWFsHBwQ0aNDB0LMp4\nxihjjDHgzz/h74/nz2XfOjhg6lSMHKnWtJTMTPj5YcUKhTeWHh7Ys0dXy7oxZhB37mDdOuGi\nCxcQGIgePfQbEPvajRyJ33+XfxscjOBgODtLNfk8KwoIr4OZJSMDe/Z8PYlRJyds3gwAL1/C\n1hYWFirqT5mClSuVT968iTZtcOMGxKZERERg8mScPi3Vc05W2Dh5Uqr01CmFxCgRLlxAWBji\n4uDpiebNYW+v/dCMMcZY/sNTGxhjLN9bvBgDB8qzogDi4jBqFPz91Wo+bRqWL1feEfj2bbRt\ni/fvczNOxgzr6FFkZoqWHjmix1BYPrBjh0JWNJv0E9xauH8/lzv8EhQrpjorGhuLxYuFix4+\nRECAcFFQEOrWxb//IilJqvPx49WIUsSbN1Kl2avEArh3D/Xro2FD2f5dPXvC2Vnj5VkZY4yx\n/I0To4wxlr89fYqffxYuWrAAN2+qaP72rej6dE+e8Nsz9lX5fO3CT716pa84WP7w+UxGHSlY\nUE8DfWnOnkVqqmjp8eMCJ1NT8d13UjNwAZiZYdUqNGqkfWDFiqlVGh+PVq1w6ZJC6YcPGD4c\nf/6p/eiMMcZYPsOJUcYYy9/27RN+9BJARgZ27VLR/Nw5pKSIlgq+sWQsj3JwkCp1dNRXHCx/\nCAnRuIl2e/LUratNK0P58CHXnkWQXgNUsPT0aTx4INrE2RljxiA0FMOGCZTeu4fNmzFtGtau\nRXi4cmlCAt6+lX0tvYRoduny5aKzfSdMQFqaVCeMMcYY+3+cGGWMsfxN+iHKe/dUNNfijaWO\npKfj9m2EhUnNAGJ6FhyMOXMwcCB++QX//iv1HHqeIL1Ttnb7aOe65GTExHBO5Gsg/UPs3Vt5\ns69u3aRmKZqbC58vUwY9e2oenN6lpmLWLLi5oVAh2NrC2RkTJ+LDhxz1WbSoxqW3bkk18fTE\nokUCi2unp+Onn+Duju++w/TpGDIE1aqhRw+8f4/UVMyYAVdX2NjA3h5OThg/Hh4e6NNHeIgu\nXdCkiezrf/8VjeT1a1y5IhUqY4wxxv4fb77EGGP5W4ECUqWWliqaa/HGMte9f49Jk7Bpk+zx\nRlNTeHtjyRKUKqWP0ZmgpCT074+9exVO1q6NvXvh5GSgmHKsYkX064ctWwSKvLzQq5feA1IU\nGIjp0xEejsxMmJmhYUPMmYN69QwcVR6Vno67d3H3LsqWhbs7TA3xH2Z3d9y4IVxkaopVqzB7\nNv77DzExcHJC3bqoVg3Hj6NNG+Emv/2GVauU1yctXhz79qn+O29wKSno0AGnTsnPPH6M+fNx\n9CjOnkXhwlp226wZChQQfWaibVuBk9Jzco1FZpyMHi2wMMLevXj7FkQ4c0Z+8ulTLFyI48dx\n9CjMzPDXXwpNevdW2P/txQupYD5dN5wxxhhj4njGKGOM5W916mhfCqBJE1hZiZYKvrHMXYmJ\naNYMq1fLF31LT8euXahXD0+f6nx0JuaHH5SzogCuXEGnTkhPN0RAuWTNGoEEaN26OHBAOXcW\nHAxvb7i4wNISNWpg4kT5c7K6sHAhundHaKhsWm5aGs6cQePGOHhQh4N+rdavR+nS8PBAx46o\nWBElSuD335X3l9ODfv1Eizp2hJ0dXF3h6yufgQigdWusXAkzM4XKxsb45RdMmoSwMMyejfbt\n4eGBNm3w22+4cQPVq+v2KnLFkiUKWdFsYWGYMkX7bu3sMHGicJGbG374QeB8lSpSHQqWxsSI\nLrd9+rRCVjRbWBhq14aNDf74AwEBmDwZq1cjPBzbt8PaWlYnNVXF55p2dlKljDHGGPt/RqT/\n/+flNQEBAcOGDUtISLDO/r8IY4x9NdLSULUqbt8WKCpRAlFRKFRIRQ+zZwtv3+TqirAw6Pov\n5y+/YOZM4aJvvsG2bbodnQm6eROVK4uWbt2Kb7/VYzQ6cOkSzpyRzdSrUwdt2yrPFPvjD/z0\nEzIyFE6WKYOzZ1GmTO7HExWFypWFM85Fi+LuXZ3/Gn6Z0tPx5o3G89bnzxdOlk2ZghkzciUu\ndX38iBYtcOGC8vnixXH+PMqWFW0YHY0tWxARgbQ0VK6M3r3h5aXTSHXO3R0xMcJFNjaIjVXO\nBauPCJMmYeFChYU+atbErl3Cdzg9HVWqCP+LaWaG8HB4eCifX7ECP/2kZXgAOnXCzp0Ks3pf\nvYKfH3bulPqQycoKr17l3221GGOMfXlSU1MtLCyCg4MbNGhg6FiU8aP0jDGWv5mZYc8etG6N\nZ88Uzjs4YO9e1VlRAJMn48MHzJunkAby8sKuXRqkY/buxa5diIyEhQWqVcPgweruByL4XHN2\nn0lJUhNamY6cOKGiNK8nRuvWlXp9RkQIZEUBPHwIX1+cPZv78WzZIpoiefUKhw7Bx0fjPhMS\nEBSEyEjY2KBaNdStq+XGPgbxzz+YMwfXryM1Fba2aNkSs2ahQgXVDR89wtSpwkVz5qBvX4G0\nl+4UKIDjxzFlCtatQ2IiAJiaonNnLF0KZ2ephuXLY/p0/cSoDykpuHtXtDQ+Ho8fw9VVy86N\njDBvHoYMwcmTuH0bRYuiZk20bCn6ULypKbZsQcuWAhtALV4s/PJ4+VLL2LIcPIhRo7Bmjezb\n16/RoIHUDckyYQJnRRljjDE1cWKUMcbyvYoVER6O5ctly9W5uKBePYwejRIl1GpuZIRZszB4\nME6ckL2x9PJCq1aibyyVpKejb1/s3Ck/c+UKNm7EzJmYNElF29RUPHwoWpqSgkeP9JrIYFne\nvJEqjYvTVxwGEhAgkBXNEhSEGzekptNqR3D+Wjbp7WIEbd2KkSMVnv2vXRtbt8LdXeOuci4y\nEvPn4+JFPH6M8uXRpAkmTZL66zR3LiZPln/77h327MHRozh+XPWKq4GBSEkRLsrIwO7dUg9u\nX7yI8+fx8CFcXdGoEWrWVDGWOgoWxJIlWLQI9+4hKQkeHqJ7KOVnOU/ZlyuHcuXUrVyzJkJC\nMG0aTp3C06coXBi1amHyZLRsKVw/54+0r1+P336TveZ/+UV1VnT4cPzyS04HZYwxxvINTowy\nxhgDHBzw22856qFsWeEV2VSaPVshK5olIwOTJ6NaNbRvL9XWxAQmJlKPEzZrhvbtMWOGwIY/\nt29j2zbcvAkiVKqEb74R2EqYaUf64eVixfQVR85cuYJ16xAWho8f4emJnj3RvbtaKZiQEBWl\nuZ4YNTHRvvRzgYECq1teuYIWLRAWBnt7zXrLoX/+Qe/e8u1xQkMRGopt23DyJKpWFagfHi6c\nu0xMhK8vIiNVbKN0/75U6b17wuffvUPfvjh0SOFkr17YuDF3Zu0ZG8PNLRf6yaMsLODujuho\n4dLChQ2wn1vZsti8GQA+fFD9IxZLmKovMxPnz6NH38VbOQAAIABJREFUD2RkYPt20Wrm5vD3\nR8eOqFUrpyMyxhhj+QlvvsQYY8xw0tOxbJloaadOqFEDM2eK7hpsYiLbckTMy5f48094eeHm\nTYXzS5eiShXMmIG9exEYiJkzUbUqFizQ/AIYACAjAzExCA2Vzbb7fM3NT7Vrp6eoPn7EsWNY\ntAgrVuD0ac02fVq4EPXrY80aXLqEsDBs346ePeHjg7Q01W2l66jTg6YEU4RqliohwpgxwkVP\nnmDhQg26yrmXL9Gvn8Cvf2ys6M9i40bR6bp37qhex0B6Nxux3dt79VLOigLYtQsDBqgYjqlp\n8GDRou++036B0ZxTJ/FdvTq8vYWLihdXd6CsJ/dfvRJ4hD9baiqGD+esKGOMMaYpTowyxhhT\nw/PnyouQ5oo7d6Qeu87MREgIfvkFjRqJvhscMUL1KLGx8PWVbyp94AD8/JTTZBkZmDBBYCN1\nw0pPx8mTWLoU8+fj0CEkJ6vVKiMD0dGIitLH/u9JSfDzg60t3N3h5QVra3TrBlNTDBkiXL9h\nQ3TrpvOoABw9inLl0LYtxo3DTz+hRQtUrIgrV9Rqe+IExo8XyK/t3i2609enpNeyVGelS031\n7y+as3NxQdu26vZz+zZ+/RUPHohW0PMe95s3IyFBuCgqSngpW6WPQJRERqoYsU4djUuPHxdd\nVHf3bnVfcl+rrPUH/vc/tGqF/v2xfLlUXk/CqFFo3VrgfI0a+t4RSzubNgl8IFS9Os6dQ5s2\navWQNStW5UIKFhaaB8cYY4zld/woPWOMMXGJiZg2DZs3IzYWAOzt0b8/ZsxQa1MmdSQlqVXt\n2jWMHy/ffeJTAwYgOBjr16vo4fp1XLsmm0ojkduaORPdu6sVkh5cvoy+fRX2Yi5WDOvXo2NH\n5Zrx8QgOxq1bMDPDqVM4elSWQi1QAN98gwUL4OAAIhw/jvPn8eABXF3RsGGOHvCMjkZgICIi\ncOKEwtYi6enYvx8XLiAoCJmZWLtWno8G0LYttmxRd/HZnLh4EV26IDVV4eSdO2jdGlevqn4q\nedEi0aLlyzFliooZav36ie4J5uameplLLZQujbVrMWCAciq8UCH8/bdauZK0NIwYgXXrFH5e\nn3v2DM+fY80ahITg1StUqIA2beDjo/HT+mpSuSjB50tt5HC5yU6d4O6OO3cEipyc0LOnwPmj\nR6U6PHYMtWvnKKS86/17dO2qMEt3yxbMn4/9+zVegNXcHP/+iyVLsGEDYmKQmQkXF3zzDX7+\nOW9sr1eoEA4dwsmTOHMG9+7ByQl16sg+Q8q6ro0bERWFzEzh5vb2aNwYABwc4OIi+tGFmxts\nbHR0BYwxxtjXjJgqq1evBpCQkGDoQBhjhvP+PZ0/T4GBFBlJ6emGjkZf4uOpRg0ClI+qVend\nu9wZ4vVrMjYWGOLzo0ABkvg7vHMntW1L5uZSPWzYQESUlERGRlLV4uNz59Jy6M4dKlxYIDwz\nMzp3TqHmhg3CNbOP8uUpKoqaNlU+37o1vX2rTWyzZpGJiYqfV8eORES3blFAAI0fT8uW0YUL\nuXBb1NS4sWhg5crRggV0+7ZUczs7qUsLD1cdwKBBwq/hoKDcukQBFy9Sly5UtCgBVKYM9e9P\nMTHqth06VK1fw5IlydZW+WSzZrr6renRQyqYadMEmvj5STU5dUr1oOHhVKKEckNHR7p8Wbi+\nr6/UiD/9lJMbkLd5ewvfkxIlcvQvSHKy1L8FeVdCAtWsKfWPV5aFC0VfbEuXGi56xhhjTIWU\nlBQAwcHBhg5EACdGVePEKGP5WnIyjR5NFhby9x5lytC+fYYOSy8mTBB9AzZ6NH34QCtXUt++\n1KgR9e9Pq1dTUpI2o7RsqVZGBqBr11R0Vb++VPP164mIXrxQMcrjx9pcRa7r21c0wvr15dW2\nbFHr1n2e6Mk62rbVOLCNG9Ua0cSEYmNz8X5o4O1b1dl2Y2OaMkW0h09/3z8/Ll5UHUNGBi1e\nLL/txsbUpInUC/jdOy2T1II+ftSsfnS0up9PmJkJn7e0pAYNaOxYevIk166CiCZNkgpm61aB\nJuHholn78uUpLU2tcV+/pilTqHlzcnampk1p4kR6/ly08pgxUkFOn67lted1N29K3ZbFiw0d\nn3oePaLp06lHD2rdmkaPptOndTtcbCx1765wo+zsZP9yZUtPp169BG7pN9/ko09tGWOM5UFf\ncmLUiKSfmWJAQEDAsGHDEhISrK2tDR0LY0y/iNCli/Cyejt3olcvvQekR0QoUULhKelP2dqi\nSBHlB049PXH4MMqU0WygiAg0aoT4eNU1Fy2Cry8cHRVOpqTA3Fz2/OzgwVLP1F+4gHr1kJ4O\nGxvRxTrNzREf/0Us02Znh3fvhIuMjBAbC3t7pKejdGm8eJGjgYKCZA9pqoMILi549Eitypcu\nqVix8VOJiXj9Gs7OGj+UnZiIDRtw/jwePoSLCxo3RoMG8PJSq+2yZfjpJ4HzHh6IihJuYmSE\n589RrJi64T1/jtev4eYm/MBvcjJmzcLmzXj8GACcnODriylTRBcM1ZHff8fIkaqrmZqqXrXW\n3h7//ptrywVERMDLS3gzJTs73LsHW1uBogULMGGC8slChXDypE6eaj9yROCJ/mxZf3YMKzJS\ntvSBpyfq1RO+abkuIADDhomWent/cQs6f27XLgwciA8fFE4OGoQ1a3S1dkSWu3dx/Tpev4aH\nB+rUwefvPoiwZQu2bEFEBIyMULkyfH3x7bc5XUeCMcYY06XU1FQLC4vg4OAGDRoYOpbPGDoz\nmwfwjFHG8q89e0QnvBQtSsnJho5Pl+Li1JpBpnR4eWkzaSU0lGrXVqt/S0saPpw2b6Z//6XR\no6lCBTI1JWtrql+ftmyh//4TbVipEmVkyIaTeD63c+fcvYtaSkpScR9u3CAiCg7W5mekdEyd\nKhrGu3e0aBH5+FCDBuTrS+vWUWSkBj2HhKh1sevXk4eHbH2DAgWoUyeKjFT3Rt2+TWXLKo9b\nrpy6EdrbU2qqQLdTpog2adpU3dhUSkykunUFhqhTR99PCv/yi+p7ZWdHVaqodVdLltQg/lev\naPdumjWL1qyh69cFKoj9LP7+W6rbf/+lRo3I0pIAcnCg3r3pzh2Nb4uaMjMF1qnIOrp21dWg\nanr1ijp2VAipUCFauVIfQ8+fL/UiadlSHzHkRHi46PzofDsLmDHGGMuBL3nGKCdGVePEKGP5\nV+/eUm/tjhwxdHy69PatBimwT4+DBxX6efOG/viDhgyhPn1o+nSpZNmDB+oudCh2DBtGEycK\nnLexUXiK+fZtsrERqFaokCzhqIVnz+jgQfrjDzp2jN680bKTbJmZspyO2PHsGRHR7t05ul1Z\nx4gRwjGEhZGTk3LlrPUr1TmsrOjDB9VXOmqUQFtra7p0SXXblBSqUEF49AIF1I0za+HI5GSK\niJA/+//+PXl4CFQuWJAOHFD9OPabN/Tqler4J08WjWriRNXNc9HSpVK3qHx5WraMXr8WXQDx\n80Pp4V8xCxYov85btZK9tj+1fj2VKSOvU60aHT2qVv8ZGRQXp9mt0E5srMCSIJ07y5ZevXmT\nfv2VevWib76hOXPo4UN9hEREKSnk5SX8A1q9WqrhmTPk7U1ly1LhwlS3Ls2YodbvspJt26Re\nId99p+1V6Uu/fqLB29hovFoFY4wxlu9xYjRv48QoY/mX4Hyu7GPVKn3EkJZGmzaRry/Vq0fe\n3jRzplo5l1zxaTJC/WPSJHkPJ06Qo6NCqZER+flRZqbwiKmpGiw5Knjs3k1bt1LVqmRqKnsH\n2707RUcrD3TlinLmq3x5LXcHSk6m4cNlw2Wnz2bNEr1GNXXoIHqNHh6yOseP5+heZR2Cs58+\nfCBn5xx1++OPqq/xzBnR5p6elJFBb95QYCDNnk2rVwus7Ll9ey5cfoUKVKaMfFXKsmVp7Voi\nopcvqUcPhZU3LS1l01rNzal1a4EU/8ePNG2aPJtcpAj99JPoJjOZmVS8uGhURYvm9PWjkYgI\nqVu0bZusWrdu6t7VYcNUDyqWja1SRTjr9Pw5Xb6cC5866M7p0zR7Ng0dSnPnUvZ/+j/fqczS\nkv78Ux/xrF4t+gOytRXNdQrO9KxUSeN/d2JjpT7d2bs359enW9L//KnzyU22tDR6+VJngTLG\nGGN5AydG8zZOjDKWfzVvLvXWaPNmnQfw5o3AhkKOjrrd2zrbrFnaZJqyZyDevUsFCwrXmTdP\ndNCPH2nKFOV0qvpH69byfqT3gcnIoAsXaM0aCgig4GDtt60Q3AcDko+oq+P8eYVk66fH9u2y\nOvHxKiaWqnMI7rW9Zk2O+mzYkBITVV/jgAFSnUyYQNbWCmcaNKAHD+TNR46Uat6ihegNVHmM\nHSsb4tUrOnmSvvlGoI6FhcIW58nJws9TV6woPGnx9WsVMejt848sgtcIUPXq8hmymzerewMH\nDKC9e8nbm9zcyM2NvL2VE2EJCVSokGjzP/7Q67XrjtjeaKam+vgbrvQQvdJx+LBAk/PnRet3\n765xAGJP07durde8v3bs7aXu3vHjanWybx/VrUvm5gSQrS316EFRUTqOmzHGGPtCcWI0b+PE\nKGP5l8SzroA+3uF07So8tL09vX6tTYfZ2cCVK+n0aUpJkaqckkJt22qcVJo7V9Z82DDROoUL\nq34UsVEjjYcGqHhxbW5LSgrt2kWTJ9OwYbR0Kd2+rW7D06dFIzEzy+kzs9u2KWeWTU1p4UKF\nOtIvUZWHj4/yoPHxtG6d8IPk0oexMdnYUKNGtHix8MKdn5OekS14lCsnX79y4ECpmiNHUnQ0\nzZqlzbUA8unD166J7tju7Cx/Gc+eLdrVkCEC1x4bqyIA7X7BtfbhA3l7K8dQp47Cpwvp6dSk\niVp3r0YNgZMDB8rX+T1wQKp5x446vNLXr2n7dpo2jRYsoOPHdbuRd/nyotfYpo0Ox81SvbrU\nTV63TqBJ376i9Y2MVHzUJGjxYoUMuLEx+frKVhj4wlWtKnX3bt1S3YPgJ4uFCmk225Qxxhj7\nWnzJiVFTQ236xBhjecD//odly5CUJFDUuTPKl9ft6LduYf9+4aI3b7BmDfz9NeswPBz9+iEi\nQn6mdGls3IiWLYXrm5vj4EGsXInNmxESAiLVQxgbo0sX2denT4tWe/8eISEqNmsuWlT1cJ8T\n3MBaWng4unfH3bvyM8bGGDcOc+eq3uQ3MFC0KC0Nhw5J7cucno6YGDx/DhcXBAfj7FlER8PJ\nCXXrYuBAFCqEb75Bs2bYvh03biAlBZUro2dPuLkpdDJjBl68wMaNCifNzJCRgcxMFcF/+y3W\nrlU4ExQEHx+8fKmi4ecqVMC2bahRQ7NWWuzsfPcuVqzA5MkAULq0VE1nZ7i7w98fgwejalWN\nL+qvv2Svz02bRO/ko0c4fRrt2gHAhg2iXW3bhuXLYWGhcNLeHiVL4tkz4SYlSsDBQa04Q0Ox\nejXCwpCQAE9PdOmCvn1hbKxW209ZWWHvXgQHIygI0dEoXRp166J9e4WuTExw4AB++gl//SX1\n6jI2xvXrAuc3bkTNmhgxAgBevJAKRuy25NyaNRgzRmGf8UqVsH07KlfO/bGePUN0tGhpUBCI\ndLuNuPTu84KlISGi9YkQGopSpTSLwc8Pgwbh8mVER6NECVSqhPv3sXo1rK1RpQoaNNDmtaof\nXbsiPFy4yMMDHh4qmoeGYupUgfMJCejfHzdvwpTfgjHGGGNfDENnZvMAnjHKWL524IDA8+A1\nasj3adGddetyc1LVgwfk4CDQj4WFWmtrqjlTbPRoeRPpjXoOHVIx4rJlao2odDRpotltiY2l\nYsWEu2rdmrZupXv3RNs+ekQNGkgF4+8v3DA9nebMIVtb0YbOzhQWpsFVnDtHkyZRly40cCAt\nXUpxcVSrllRgI0dSeLhyJ/fvSz3dLHa4utLx46r3IxIkMadY4mjYUNY8JES0jomJwoTuiAiq\nWFGzUbJ3zW7TRqra4sVERCkpsuVHxQ6lLdFfvKBt26R+p375RcWti42l06dp7FiB5QLatqXk\nZG1+HOp79owOH6Y+fYSDl3gG2d1d1sOuXVK3q0ULnYQtth1QsWI6WQLy5k0Vr7GkpNwf9FNT\np0r9gjx/LtDEzU0qYPUXBk1JofBwOnSI7tyRTxPeu5eKFFHosEoViojInYvNdW/fkqurwE0w\nNVVr76+ffpK6k5+uwsEYY4zlD1/yjNEv9XNaxhj7QnTqhIgIjB2L5s3h4QFvb6xcifPn1Z3P\nlRMJCdqXfm76dMTFCZxPScH48QpniLB3LwYPRsOG6NgRU6bgwQP5PFAxlpaYOhULF8rPlCgh\nVV+6FMDAgRrPTgIwYIBm9ZctE51LePw4+vaFmxv+9z+kpioUvXqF7t1RpgzOn5fq3MZG+Pyw\nYZg8Ge/eiTZ89AidOyvMa5PWqBHmzMH+/diwAaNGwd4eTZuKVrawwIwZqFIFANLS5OcXLND4\nRQXAywutWmk5++mHH7SZL5Y9nbB6ddEJuWPGKEzorlwZ4eE4dkx21erIviLpaa1ZpUZGKqb+\nfVq6ZAlcXPDttwgKEq7cuLFsSuzNm1i7Fr/8gvXrERUlK717F23awNERzZtj0SKkpys3P3oU\nEydKBXPnDvz90bkzWrbEyJE4e1aqsqASJdCuHf7+G5s2KfySFi2KxYvx5o3U0O/fA0CTJlKv\nmebNNQ5JpcxMTJggXPTyJRYsyFHnKSkCJ0uUkHp529nB0jJHg6o0YgTs7YWLfvgBxYsLnHd3\nl+pQujRLZibmzUOxYqhaFR06wN0dZctixw4cPw4fH7x+rVA5IgItW+pwgnBO2Nri9Gnll2LJ\nkti7F23aqG5+86ZUaWRkjmJjjDHGWO4ydGY2D+AZo4wxfUhNpYMHadYsGj+eNm6kZ89ozx4V\nM9oEp/x87sMHOnZMdB+krKN9e/r9d/r4kZKTqXNn5dKCBWnrVqpQQbitry8dPy6ww4y/v+hw\npUvLpxFJCAtTsTWw0tG1q1rdfqpePbV6HjBA4X5WrqxWK8FPRM+eVfdyVq/W7Fo+9fgx2dgI\ndzthAr16RSNHkrs7mZiQgwO1aUNHj4r+fKWPgADtgySiefME+rSzkxqxRg168oR+/ZW8valR\nI/Lyku1tkv1anTFD9GUwbpy61zVxoqzJxIlS1U6fllWTmJFauLB80VWJjcJNTKhCBZo5k1JS\nKDFReT6mkRH16kUBASr2hMk6ChQQXcZx/XqysFCuP2yYxr842TIyKCaGjh2j6GhKT6fnz1XE\n9uKFrOGPPwpXKFpUeLuqHJKYXwxQpUra9BkYSE2aUOHCZGJCbm40erRy5I0bi47Yv3+uXJYK\n589T8eLKQ3fvLrrE89atogFXr67WiMOHCzcvVUq05+z9+rSQmEgPH2r/6lXHzZv099+0ejWd\nO6d6aexsrVpJvd5+/12HATPGGGNfpC95xignRlXjxChjLPcpvZELC1PepsPCgmbPFs1tZedK\nunalZ8+kBtq9W/npRYnDy4sGDxYusrCgM2eU9922thbdPzoujg4eFH2afscOdW9UQgKtXk2D\nB1OLFgJb1Wc/v+zsTPPmafNAt7u7ujcnJETWZO5cteo3ayY8ovrPj/frp/HlfOrMGYEfva8v\nRUVRyZICw0mnzgUPDw8NMgVijhyhli3Jzo6MjalMGfLyolq1pJ5M9/YW+L1o0IACAujUKXr3\nTmqsy5fVui5zc4qOljWJiiIzM+FqFSvKt+5ZskS0t+z1JVJSpNKaU6fK4+zSReOfhdJx7pzA\n5QcHk4mJcP0FC3L6c8ySni71V8vGRn7HUlLom2+UK5QuTVev5k4kSo4ckbpdDg4adyi471mZ\nMvTokbzOhQsCaWiA7Ozo7t1cvDgpb9/S8uU0YAB16EBjx9KRI8LV/v6bOnSgMmXI0lIgYGtr\nunJFVjMjgx49og8fBDq5eFGb12qZMtpc1/r15Okp+0NhZUVdu35ZG76PGiV1yWfOGDo+xhhj\nTN84MZq3cWKUMZZrYmPJz48qViQzMypalNq3pxMn6MUL0QSir6/qd5Xu7vTmjfBwBw8KLEEo\nfYhtwA3Q0KFERNeu0dq1NHcu7dsnPO69e9SunVRmZMMGLe9ecjKtWkU+PlSjBnXpQjNn0uvX\n9PCh6OWro2FDde/MzJmyJrVrq65cs6boqoWtW6s7YpcuCg1TUmj3bpo0iQYNonnz5IlaCW/e\n0LJlNGgQdelCEyfS2bOaXfKnR5MmysnKWrXowQPt7/znrlwRXe81+yhUiAoUEC5Sc97ZiBEq\nhjA1pfXrFZqsXi2QT7S3p9BQeZ3UVOrUSaC32rXlkzeDgqTGrV9fVu3kSW1+QEqH4DKIHTqI\n1i9SJNf2Zxf7cAWgwYOVKwcFkb8/9exJw4bRunWUmJg7MXzuyhWp21W+vGa9nTol2lXbtgo1\njx1Tnizp6UnXruXileVUejp9+63o5RgZUfPmsiWJo6Koa1fZJyjGxlSxIv35p0JXfn7avFbN\nzDSOWXAFTxubL+jGhoWJfgjh4aHlosyMMcZYXsaJ0byNE6OMsdxx/z6VLi3wNklpGuanR7Fi\ntGaN8KZJnx4TJggMl5mpwXRIdY4qVVRf44MHAk9uZqVdfv6ZAgNVTOjTv+nT1b387LybdPKu\nbVvatEn+6PTnPl+pQOwYPlzeKjKSPDyUKwwZovEb7PBwbX70pUpRRgZFRNCyZTRiBM2cSYcP\n5/LjqykpKjZ+yfp16NFDtNTUVK1HsDMyaM4cKlxY3tDamkqVIjMzKl2avL2F9yI7e5Y6dCBH\nRzIyorJl6fvvFSYGZklPp2XLqGpVMjcnU1OqUIF+/VVhH6SdO6WurmxZ+usvqllTNJ+i0ZE9\n45WI3r2jUaOknmXOOm7e1OLnJuD5c3J2Fui/TBl1V//QhdRUqT+kRYpQ//6qd4TL5uMjdSeV\ndmxLSaETJ2jZMlq1ioKCdPvctxaWLhW9kPHj5anqK1eEN2fz85N31a2bNq/VokU1C1giK12l\nCmVm5tqdySHBdUJsbORzbxljjLH8hBOjeRsnRhljuUMiASpxXLlCHz7QoUNSDxe7usqGSEuT\nL+EXGZkL6ZVPDxcX1dfYu7do81GjdHVjc+LtW3JyUuvyp0yhq1dp3DiyspKqJvgI86fUT8Ue\nOyZrEh8vnFIHaNw4za53yxZtfvRbt2o2SlISPXig2QzEvXulAmjShFatonfvqEYNqWrqJ7Y+\nfqSQEDpwgG7f1iy5rM7SAampwtWkp4KKTRvX4vDykg/66pW6q8cKZoSzvX5Np07RsWP05Inq\nO/DkCXXrJv+TZWRE3brRhQt07ZoO54SqtGyZ6psweLBaiUtPT6lO9u/X/cXkHsG917MONzdZ\nnYwMqlRJtFrWVHQi5YVx1Tx8fDQLuH9/qd4uX87Nm5NDBw5Qw4ay1QkcHalPH4qJMXRMjDHG\nmGF8yYlR3pWeMcb0IjJSm92fAbx6BSsrFCsGItE6Dx/iwAE0aABraxQvDjs7dO+OS5e0DlaY\ns7OKCsnJ2L9ftHT79twNJ3fY2uL4cVSurLrmgweoVQsLFyIpSbSOpSW8vFT0M2gQrK1VD+ft\njdatZV8HBODxY+FqS5Zg61a8eKG6wywZGerWzFKwIAIC8O236tbfsQPVqqFQIbi4wNoa7dsj\nPFythleuSJV6emLYMBQujIQEqWrx8erGaWGB6tXRqRMqVJDaHl2woUpmZsLV6tVDwYKirV69\n0iAMCQUKYOVK+bdjx8p3tJdWurTw+WfP0K0bihZFixZo0wZOTmjaFLdvS3VVqhQCA/HuHc6f\nR1AQJk9GUBDq10fNmrCxQYsWiIhQ+3pyz08/YcoUqZ3iAaxbh+XLVXeVmSlVqulvmQG9fYt7\n90RLY2Lw/j0AXL4stc36xo2yL+rU0TgAc3P4+0tVCArC+PHo0AF9+mDuXDx/ruK1d+uWxjHo\nTqdO+O8/JCQgLg6vX+Pvv1GunKFjYowxxpgyTowyxphehIVp2dDREQCsrKTqGBujSxdcuICU\nFAB49w6BgRg+XMsRxXTvrqLC06f4+FG09OVLxMcjMBCTJqFvX0yciAED0KwZihdHjRr44QeD\nvaH18EBoKA4fxqxZKF5cuE6FCtiyRXVXP/4olfnKUqoUtm6FpaVoBVNTDBuGrVvlZ06cEK2c\nkYF+/eDsjNGjkZqqOkIPD9V1ssPYvh0PHmDIEHWb/PYb+vRBeLgsMfTxI44cQd26an0kIPHK\n+bRULHmXRWXu3rCsrDBpknCRuXnuDFG1Kk6dQv36sm8TErBzp1oN69RBqVIC52Nj0bgx9u9X\n+GAmKAiNGiEmRrirpCRZ3tDGBvXqYckSzJ6NN29kpZmZOH0a9eurSIXryIwZuHkT8+ejSBHR\nOosWSX0KlUX698jTU5vYDCLrnwyVFaT/OGeX+vrC3l64To0a8PdXzkoXKoTt21GtmnCTjAwM\nHoymTbFwIQ4fxo4dmDwZHh6yXK0Y6cS3QZiYiN4WxhhjjH0BNJklwRhjTGvp6dq0cnCQzUB0\nc4OjI2JjhaulpQmcTE6GsbGKmU2fs7VFYqJAtF5eGDZMRVuJZB8AY2M0a4aQEIGily8REoIt\nW/DXX+jZU5NwNXTpEv79F7duwc4O1avj229hawsAJiZo1w7t2mHAAHTpgmvXFFrVr4+XL1V3\n3r07Zs5UK4wuXRAaiiVLcOUKnj1DhQqoXx916+L5czg5oUYNlCypUD8uTkWHaWlYtgxv32LT\nJhU1a9dGpUpSk7+ypaejQwcUKqS6ZpaQEEyfLnD+40cMGICoKBW5P1dXqdJy5RAXh337pDJW\npUqhdm31Ys1VRLh7F7duwdoaVavCwUGqsr8/4uKwbJnChTg5wdQUDx5oH0Pv3ujfH56eKFsW\nRkby8zExqjNfACwssGSJcNHMmcIzCuPiMG4c9u2Tn3n9GtOm4fBhPHgAKytUrQo/P2RmIjBQ\noPmHD/jhB4SGqo4t13l4wN0dkyeLVnjyBE/5CFtiAAAgAElEQVSfwslJqpMBA0Rnx9erp8HH\nDwZXpAgKFxZNNdrayj6Zk842Zpc6OGD3bnTrpjx328UFO3eiXDn06YPAQNy4gYIFUaUK+vZF\nsWLKvWVmYv9+BAXh0CFERyuXxsfjwwepYKpUkSpljDHGGPsMJ0YZY0wvpN8qm5sLT/crWhSj\nRqFpU/TogdGjMWWKZoOKZUUtLFCvnsA8PlNTrFsHc3OMGCF/dtvICD16YNUq1Q8RlyyJUqXw\n9KnooIJZ0WwfP8LXF7Vro0wZFQNpISMDI0YgIEDh5G+/YedONG0qP1OyJC5exL59uHAB9+7B\nzQ0NGqBuXeHJdFmMjGTp1K5dYWQEIhw6hFOnEBWFkiVRsyb69hV4dr58eaxapW7wRYuqVW3z\nZgwfjrp1peoYGWHjRrRogcREFb0VLKjWI//ZNm0Sfb09eIDTp9G2rVRzb2+MHy88b9TEBNbW\ncHVV8aT88uWaPRSfK86fx9ChuHFD9q2xMfr0wfLloulRY2MsWYKBA3H4MCIj4eCAatXQqxdq\n1dJ4aCMjuLmhZk0MGiRfdUELrq5Ytw4NGgiXSkw4PXQIiYmyF8n9+2jSBE+eyIqSknDxInr3\nlsp3h4UhPBxVq2oduPZSUlQ87S6degPQrRt8fbF5s/J5e3usW5ej2PTMxAQ+Pli7Vri0Tx9Z\n0lP6x/RpLrJ5c0REYNkyXLqEJ0/g5oZmzTByJAoXltWUTly+fYtu3RAUJFVH4mdXr57o/NNc\ncfUqrlzB48coVw5Nm8LNTYdjMcYYY0xvDL3IaR7Amy8xxrQRHk6bNtHixXT4ML1/T5mZUptX\nLF0qurtO1lGvHr14Qd9+q/G+Fo0aKZ+xsaH9+yk5mcaMoQIF5OfLlqV//pEFn5pKV6/SX3/R\nwYMCu29LENyHV6Pj55918dOgqVOFh7OxUX2B0dEqYo6Pl9VMTKT27ZVLnZ0pNFTdOD9+pPnz\nqWFDsrWlMmWoc2c6coRWrFD37k2erNYokZHUsSNZWEh11bOnujFnadtWqrclS5Trx8VRUBCd\nOCHfLmzxYuG2331HpqZSnRcvTrt2aRZtrggOVvgNyj6qV6ekJM266tlT6gIdHZXPFChAO3ao\n7jY+XuqnXLYsXbkitfdUcrKK19utW7KaLVtq88u+e7dmdykXFSsmGpWZGanzX77MTFqxgsqV\nk7UqWJB69FDejz5PePGCypYVuA+urvTqlaxOZibVri18u4yN6cSJXAvm87+fgoeDg/Dfgaio\nXItESVwcdeigfOEjRmi2dRtjjDGWj33Jmy9xYlQ1TowyxjTz9Cm1aqXwDqpgQerShTp1InNz\ngbdz339PRJSURNu20bhxVLiw8FvBVq2IiPbto759hdMxgsfixXTxIk2aRF27Ut++NH8+PX8u\nDzU+ni5epH37KCpKsz3ExaSnC29MXLmyugG3bZsLYShJTJTaSn70aBXN4+OlEnO2tvKaffsK\n1ylZkt6/Vx3nu3fC2YeJE9XdWLx/fw1uS1oabdtGZmYC/RQsSDdvatAVqcpoLFsmr/n8OXXv\nTsbG8tLmzen2bSKiTZvIyUl+vmhR+uMPat5ctNvy5en8eUpO1izU3OLlJRrYvHmadXXokGhX\njRtTcjItW0YdOlC5clS3Lo0YIc9ISrh1i1atkto/ffVqio+n33+nAQOobVv68UcKDFTYkz0j\nQ0VK+uFDIqKYGHV/u5WO7E9i9G/ECNGounTRrKt37+j+fbX2sv9iPX9OPj7yX0ljY+rdW+Ff\nCiK6dYuKFhW9aSVK0JQpOf1NvHxZ3VdO0aL077/UrBkVLkxGRlS2LA0dqhxwLsrIEPiIMesY\nMUJXgzLGGGNfF06M5m2cGGWMaSApiSpWVPGmzshI9oWzM61YQZmZ8uZ//inV8Px5WTWJNJ/S\n0bEjrV+v8fy1HNq5k7y9yc2NPDyoVy86dIh69FA34GbNcj+ekyelRqxeXXUPEtMhv/tOVicm\nRv6T/fxYtEj1KAMHijbftInq1lV997R4l75vn/L0KycnOntW434mTJAK7NQpWbW4OHJzE6jg\n6EgxMUREGRkUE0PHjlF0NKWn08ePZGIi2q2xMX34oHGoEuLjad8+mj2bliyhkyelPi24c0fq\nemvV0njo4cMF+ilalKKjNe4qPZ1GjFBIPX9+dOtGV68KTFRv2VI+A5qI6tUT7aFkSdnfrn37\n1P3t/vQwMtJsNnruevmSypQRiMrOToezDr9wHz7Q1at09aro79SzZ/TDD+TiIvvV+/zuZSXx\ntTZ/vrovHi8veSuV/7olJ9P16xQSQh8/ahnY3r1Sf4Ky/nAxxhhjTNKXnBj98rZuZIyxPG31\nakRGqqhDhEaNEBuLhw/x448Km6VIr62WXSq9zdGn/v0X33+PqlVx+7a6TXKuVy/s3Ys7d3Dr\nFnbuRPv2AjtsiClXLvfjefdOqvTtW9U9zJsnvN28oyN++0329dmzUlsDqdyZ/d07hZ3oleza\nhQsXcOYMhg6V6qRxYxWjfK5rVzx4gD17MH06Zs/GP/8gJgZNmmjcz6BBMDMTLvL0lAc2c6bw\nbuaxsRg3DgCMjVGuHFq3hrs7TEzw9q3UkoKZmfLtznNu1y64uKBbN/j7w88PLVuicmXRDYKk\n90rSYiellSuxcSOqVZOtlOroiO++Q0gI3N017mrCBKxcKbzkq4kJPD2xdCk2bEDnzvKlhLOd\nPInvv5d/O2aM6Ch+frK/XSr3cBdUrBgWLMDOnVpuTJdDRYsiKAjt2yucrF8f586hfHkDxPMl\nsLJCzZqoWRNWVsIVSpTAmjW4fx8DBwq/us6dw+LF2gcgvd38p7p2lX9taYnUVPz1F4YORZs2\n+OEHbNwo23Ps5Ut88w2srVGjBry8YG2Nfv3w6hUAJCdj3ToMHoxWrTB0KP76S3gPwyyHD4sW\nZWbi6FF1w2aMMcbYl8nQmdk8gGeMMsY00KyZunNeBCflSc+szF5Bsl07jednubrqe97opw4e\nVDfOXFyuLtv581Ij1q+vbidKz7PXqEEREfIKYktkZh1Nmqjo/9w5qeYlS8qqZWaKTuLz9KSU\nFK1uUC5ZuVJ4Ct716/I6JUuKXqPg2o4pKVJPc5uYKL+q796lNWtozBiaO5eOHdPgAecjR4QH\ncnAQntgYHCz183J2Vq5/5w5t2kTTptGGDSoehE9Jka/tqIUnT6TuWECArJr0yzVrZYMskycL\nVOjfXz6d9vZtqa5ULqNRp458nVn9e/qUjh6lgwfp/n2DxWBAaWkUFUVxcRo0SU6mggVFf5pu\nbtoHI/gH5POjXDmFlUmePqXq1ZXrVKxIV6+Sq6twhFevkoeH8nkvL3r2TDiwLl2k4pk6VftL\nZowxxvINnjHKGGNfr7g4/PcfbtyQzTd59kzdhidOCJyU2P0cgJOT7IvRo9UPUObePakJibrW\noQNatlRdbcAAtappqnZtqSmrnTqp1Un9+oiMxOXL2LABmzcjJARXr6JyZXmFkiWlmkv/ZAGk\npqpVamSEPXsEdl52d8c//8DcXMUoOjV8OE6dQps2sLMDAGdn2ZxHLy9ZhZQUqV+QtDSBCYzm\n5mjRQrRJ06by2dNE8PdH+fIYMgSLF2PSJLRpg9q1ce+eWsGPGyc8dTEuDjNnCpyvVk1q4na9\nevKvU1MxbBgqVMB33+G33zBoECpWRL9+olufm5ujSBG1YhZ08qTUHMyTJ2VfqDk5HcDs2Thz\nBr6+qFEDVaqgd2/s24fNm2FiIqtQoQIaNhTtas4cnDkDb2+4uMi2OFdy+TJ69tRy2mnOlSyJ\nNm3QsSNcXAwTgKHcuYOuXWFtjQoV4OCAMmWwdKnwPFAljx+LvnQB3L2r4k+ZhA4dZNOlJTRr\nhlOnYGMj+zYzE927C0zrjoxEmzbCv/sxMWjdWuARipAQ9Ogh/Dq0t5cKycFBRcyMMcYY+8IZ\nOjObB/CMUcaYsKtXFebuWVnRuHFUq5Zac14AGj5coE+J1TBNTRXmNM2YIVDn81kwnx79+unr\n1gh59466dRONzdaWZs/OnQ2gBG3eLDyuq6vCioo5ERtLlpaiF7htm4rmjx5JLVHaoIFC5ZQU\n2riRBg+mZs1owABavTqXl9rMOcHpySo383nwQKDVpUvCu5aZmclX3SWR34is+WWJiSqiffhQ\nKionJ+FWfn7C9U1M6MIFeTWxpWO7dlURlXYWLJC6luw1fCW2tAJowQLNBr11ixwdBfoZPFhe\nR2KhRuhmqjgTExYmvMufOv9GqNxry9GRBg+mly+1CWzcOOE+K1emv/6i8HDl+keOqAhG0+P4\ncYGotmyRavLpcwOMMcYYE8EzRhlj7Ktz8SKaNMHFi/IzSUlYuBCxser2IDiHsUULeHsL1x87\nVmFO05QpCApC376oWhWurujcGRs3ondvqRGll9rUtcKFERiI0FAEBGDKFGzciJgYPHuGM2dw\n+zZev8bkyfI5aLmuf3+sWYNChRRONmiAkyeVT2rNwQHTpgkXNWwIHx8VzUuXllrZs29fhW/N\nzTFgANauxenT2LgRQ4eKLgtoKIKzKY2NUauWaJMSJVC6tMD5OnWwZ4/ytCx7e+zejfr1Zd++\nf4/Zs4W7vXsXAQEqov2/9u48Lspy/eP4dxAYMEVUFNcQ0FTc18pSjztq5anM0pTUyixb9JeZ\nZR23UiuPWuop91LMpUytXEKP5Z5r7riBa24sqSEIAvP7Yzw44gwMijMO83n/0Quu+36e5+JB\nb+niXs6ezan13Dnr8dGj1bFj9qCnpyZNujFjdM8ezZpl/fKlS3PfefY2BATY1Wrn5HQ7Vaum\nHTvUtauKFZMkDw9Vq6YpUzR16o0+OX+xd+NVwJYXX7S+oWdkpBYvzuXa+++Xv39OHeLjNX26\nGjbUyZN5TuyTT/TeezfNfDcY1KOHNm9W9+6qVSt7//Xr8/yInK1fr2vXtH69pkzRjBnatk0m\nk7p0uWlxgKXnnrPSlJamvXu1bZuSkvI5PQAAcBfktmIFAGDVK68oOdlK/Phx+foqJSX3O4SH\nW4/Pnau33tKMGTdWNfr4aNAgK0W3pk2zH7YzbVpOT8x1NbcD1KmTfRl42bIOevTLL+uZZ7Ru\nnaKjVby46tZV48b5/Ih335Wk4cNv+gPw9NOaNs2umu9//qNHH7VyGFTLlnr55fzL0qkGDLBZ\nvn/rLetLrSU99piOHdPy5dq7VyaTatVShw43ltNKWrs2p790v/yS0yFCym2prHlngFsZjfrp\nJ82fr6VLFR2tokVVu7b69lXt2jf6LF+e052XL1fz5jl1uA2tWqlQIZsnVrVpc/2DTp0UGWm9\nj6+vWrfO83Pvv1/ffitJZ87I399KpT7nX8zc3q9tli3TokXat0/33SejUQkJio3V1auqXl2d\nO2vAABmNt3Pbgm3/fm3fbrP1m29s/nLOzMtLvXpp/PhcnnLqlF5/XT/+mLfcPDw0apTefFOb\nNikmRhUrqlGjnE7ks/+8Jjvt368HHrjp8LQ6dTRnjpYt05NPaufOmzp36qTp02+KXL6sQYP0\n9dfXT38yGNS+vSZOVEhIPucJAADyD4VRAMi7ffu0Z4/N1rAwnTypuLic7tC5sxo31pkzWrxY\n+/bJ01O1aumppxQQIF9fTZ2qDz/U1q06fVqhoWrcWKVL25VY+/by8rJ5uu7jj9t1kwJm0yat\nX69jxxQUpIce0hNP6Ikn7uLj3n1XL76ozZt15IgCA9WwoapWtffasDBt2aI331RU1PWyeNGi\nevVVDR9u88B3l9Oli3bu1CefZI937Xr9VHpbihbVs8/aLKqaT5q2JedWSZUr6/77bU5wa9HC\n5oUGg7p2VdeuNjvYmm1qlvNM1dtTsaL69tXkyVaaqlVTRMT1j596Sv/4h377zUq3YcNymXaa\nM1ub7ea8CW/OrbfKyFDPnjZruzt2aMcOLV6sVatuKqBD0qFDObXeuvnmrUaM0KZN2rIll27L\nluncOZUpk4fczMqU0VNP2dUz33/bt3Rp9i16d+9Wy5basUNbt+rnn7Vli06fVuXKat48+281\nkpOv98xiMmn5cm3bps2bcyrvAgAAp6IwCgB5FxOTU2tiog4e1Jw52rVL584pNlaHD9/UoWtX\nTZ+u6dP15ps3TXN75x3NnKmnn5akihWtLyvOWYUKeucd62uK27VThw55vqFLS0rS889nn7LU\nsqUWLry7x2UEBNx+DbpKFa1YoZQURUerWDEFB9ucROm6xoxRu3aaMUP79ik1VTVr6rnnrv+x\nv212rh+3xWDQ0KF68UUrTUajhgy5/cRszTY1y3mm6m0bP14pKZo586ZgvXr64Qf5+Fz/1MND\nS5eqb1/Nn3/jwJn77tOwYblUqG/b449r9GjrTR4e9p6BlmX0aJtV0Sxbt2rwYP3nP3m7c4GX\n8+z1XI8/klSkiH77TWPHat48HThgs1tmpg4ezKUwmpmp9PTbPzXu8cc1ZIhdZ0bZyerBZfHx\nGjZMM2eqUyd16mTz2nHjbqqKZomLU//++umnfEsSAADkK4PJWceAuo4pU6b07dv377//LlKk\n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\nS3r99dfNEyQLFy7coEGD1q1b9+7du0KFCubOgYGBFy5cKFSokP43edP8s6kkb2/v1NRUywed\nPn26fPnyWQ9atWpV27ZtQ0JCjh49ajAYTCZT5cqVY2NjV61aZS5iSvrvf//7+eefb9u2LT4+\nPj093Rw0Go1Xr17Nus+tS+atxvP0ThISEszVT0lpaWlGo9HDwyMjI8McyfmdAAAAwMEojAIA\nAOA6T0/PjIyMlJQUHx+frGBKSkrhwoU9PT2vXbtmjpiLgDl3S09Pnzhx4tdff22eOCmpcOHC\ny5cvb968uSQvL6+seuWtsn5ANT8oIyPDw8PDsjU4OPjEiRNr1qxp0aLFmjVrWrVqValSpdjY\nWHP/hQsXPvfcc1Z/yrUM2lkYzdM7Md1yIpNlMOd3AgAAAAdjj1EAAABcV6xYMUlnzpyxDJo/\nNTfdGrfVzdPTc8CAAbt3746Li1u0aFGLFi2Sk5Pfeecdc6u/v7+kmJgYq2uasj3IsioqyWAw\n9OzZU5L5mCPzf3v27Jl1npJ52Xvfvn0PHTqUkpJiMpmuXLlyey9EeXwnOcv5nQAAAMDBKIwC\nAADgunr16kmKjIy0DJrPXq9fv362ztkOajd/ar6DpYCAgKeeeuqHH36QdODAAXPw4YcflvTl\nl1/eXp69evXy8PBYtGjRiRMnfvjhBw8PD3Op1My8V+mYMWMeeOAB8zTP1atX33oTT09PSZaL\n663K0zuxk9V3AgAAAAejMAoAAIDrevfuLWnUqFGff/75uXPnzp07N378+DFjxkh68cUXs3X+\n+OOPJ06ceP78+fPnz0+cONF8mnyvXr3Mrc2aNYuMjDx9+nR6evq5c+c+++wzSVmr0d9++22D\nwTB27Ng+ffrs3Lnz8uXLqamphw8fnjZtWpMmTXLNMygoqGXLlikpKc8880xKSkqrVq2CgoKy\nWitWrCjp008/TUxMvHjx4nfffdenT59bb1K2bFlJc+bMSU5Ozq93krOc3wkAAAAcjD1GAQAA\ncMOzzz67cOHCbMFu3brNnTs361PzovXu3btnm0fZqVOnxYsXm1uzFrZbGjZs2NChQ80fT5gw\n4e23387MzLy1W7Y9Rq3+vDp//vyuXbtmffzss89mNX322WeDBg2y7BwREWGe42l5qzfffHPi\nxIm3PvfWh9r/TnLeYzTXdwIAAABHojAKAACAGzIzM7/88suZM2dGR0dLCgsLe/HFF1955RXL\njT7NBb60tLSRI0fOmTPnzJkz5cuX79mz5+DBg729vc19fv/99+nTp69Zs+b06dMlSpSoXr36\nq6++2qVLF8tnbd++/fPPP1+3bt25c+cKFSoUEhLSrl27F154oXbt2pYPsvrzampqarly5RIT\nE0uUKHHmzBmj0ZjVlJGRMX78+KlTp548ebJ8+fIvvPDC+++/7+Xlle1WycnJH3zwwZIlS06f\nPm0+Q8lWYdT+d5JzYdSedwIAAACHoTAKAAAAAAAAwO2wxygAAAAAAAAAt0NhFAAAAAAAAIDb\noTAKAAAAAAAAwO1QGAUAAAAAAADgdiiMAgAAAAAAAHA7FEYBAAAAAAAAuB0KowAAAAAAAADc\nDoVRAAAAAAAAAG6HwigAAAAAAAAAt0NhFAAAAAAAAIDboTAKAAAAAAAAwO1QGAUAAAAAAADg\ndiiMAgAAAAAAAHA7FEYBAAAAAAAAuB0KowAAAAAAAADcDoVRAAAAAAAAAG6HwigAAAAAAAAA\nt0NhFAAAAAAAAIDboTAKAAAAAAAAwO1QGAUAAAAAAADgdiiMAgAAAAAAAHA7FEYBAAAAAAAA\nuB0KowAAAAAAAADcDoVRAAAAAAAAAG6HwigAAAAAAAAAt0NhFAAAAAAAAIDboTAKAAAAAAAA\nwO1QGAUAAAAAAADgdiiMAgAA4CEXIgAAABdJREFUAAAAAHA7FEYBAAAAAAAAuJ3/B/sox5vb\niDkNAAAAAElFTkSuQmCC",
      "text/plain": [
       "Plot with title “Anomaly Detection Results”"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Adjust plot sizes\n",
    "options(repr.plot.width = 15, repr.plot.height = 6)\n",
    "plot(results$Reconstruction.MSE, type = 'n', xlab='observations', ylab='Reconstruction.MSE', main = \"Anomaly Detection Results\")\n",
    "points(results$Reconstruction.MSE, pch=19, col=ifelse(results$Reconstruction.MSE < threshold, \"green\", \"red\"))\n",
    "abline(h=threshold, col='red', lwd=2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Session info\n",
    "Below is the session info for the the packages and their versions used in this analysis. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "R version 3.3.3 (2017-03-06)\n",
       "Platform: x86_64-pc-linux-gnu (64-bit)\n",
       "Running under: Debian GNU/Linux 9 (stretch)\n",
       "\n",
       "locale:\n",
       " [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8       \n",
       " [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8   \n",
       " [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C          \n",
       "[10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C   \n",
       "\n",
       "attached base packages:\n",
       "[1] stats     graphics  grDevices utils     datasets  methods   base     \n",
       "\n",
       "other attached packages:\n",
       "[1] h2o_3.26.0.2 dplyr_0.8.3 \n",
       "\n",
       "loaded via a namespace (and not attached):\n",
       " [1] Rcpp_1.0.2          magrittr_1.5        tidyselect_0.2.5   \n",
       " [4] uuid_0.1-2          R6_2.4.0            rlang_0.4.0        \n",
       " [7] tools_3.3.3         htmltools_0.3.6     assertthat_0.2.1   \n",
       "[10] digest_0.6.20       tibble_2.1.3        crayon_1.3.4       \n",
       "[13] IRdisplay_0.7.0     purrr_0.3.2         repr_1.0.1         \n",
       "[16] base64enc_0.1-3     vctrs_0.2.0         bitops_1.0-6       \n",
       "[19] RCurl_1.95-4.12     IRkernel_1.0.2.9000 zeallot_0.1.0      \n",
       "[22] glue_1.3.1          evaluate_0.14       pbdZMQ_0.3-3       \n",
       "[25] pillar_1.4.2        backports_1.1.4     jsonlite_1.6       \n",
       "[28] pkgconfig_2.0.2    "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sessionInfo()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "R",
   "language": "R",
   "name": "ir"
  },
  "language_info": {
   "codemirror_mode": "r",
   "file_extension": ".r",
   "mimetype": "text/x-r-source",
   "name": "R",
   "pygments_lexer": "r",
   "version": "3.3.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
